【问题标题】:Dig down path to JavaScript Objects挖掘 JavaScript 对象的路径
【发布时间】:2017-02-09 09:29:15
【问题描述】:

我正在尝试提取 MultiLevelPushMenu 插件中当前元素的根路径。

https://github.com/adgsm/multi-level-push-menu

所有者提供了将根级路径提取到文档的方法

/**
 * Find path to root of selected menu level object
 * Provides chain collection of menu level objects (root menu level object to given menu level object), or false in case of error
 */
$('#menu').multilevelpushmenu('pathtoroot', $menuLevelObject);

我已尝试按照指南使用相同的方法,但我得到了 HTMLLiobject,但无法深入挖掘路径。

我需要此集合中字符串格式的路径,有什么帮助吗?

这是我的代码..

$(document).ready(function(){
// HTML markup implementation, overlap mode
$( '#menu' ).multilevelpushmenu({
containersToPush: [$( '#pushobj' )],
menuWidth: '25%',
menuHeight: '100%',
onItemClick: function() {
// First argument is original event object
var event = arguments[0],
// Second argument is menu level object containing clicked item (

element)
$menuLevelHolder = arguments[1],
// Third argument is clicked item (
element)
$item = arguments[2],
// Fourth argument is instance settings/options object
options = arguments[3];
    // You can do some cool stuff here before
    // redirecting to href location
    // like logging the event or even
    // adding some parameters to href, etc...
    var path = $('#menu').multilevelpushmenu('pathtoroot', $item);

    alert(path);
}
});
});

here is what I'm getting

【问题讨论】:

    标签: javascript jquery object


    【解决方案1】:

    以下更新后的示例应该为您提供:

    /All Categories/Devices/Mobile Phones/Super Smart Phone
    

    点击最后​​一个元素 - 而不是您当前获得的对象字符串...

    $(document).ready(function(){
      // HTML markup implementation, overlap mode
      $( '#menu' ).multilevelpushmenu({
        containersToPush: [$( '#pushobj' )],
        menuWidth: '25%',
        menuHeight: '100%',
        onItemClick: function() {
          // First argument is original event object
          var event = arguments[0],
          // Second argument is menu level object containing clicked item (element)
          $menuLevelHolder = arguments[1],
          // Third argument is clicked item (element)
          $item = arguments[2],
          // Fourth argument is instance settings/options object
          options = arguments[3];
          // You can do some cool stuff here before
          // redirecting to href location
          // like logging the event or even
          // adding some parameters to href, etc...
          var path = $('#menu').multilevelpushmenu('pathtoroot', $item);
    
          //console.log(path);
          //console.log('element0: ', path[0]);
          //console.log('element1: ', path[1]);
          //console.log('----------------------------------');
          //console.log('element0 inner html: ', $(path[0]).html());
    
          var s = ''; // string to hold path
    
          for(var i = 0, length = path.length; i < length; i++)
          {
              var html = $(path[i]).find('h2').html();
              if(html) s += '/' + html.split('</i>')[1];
          }
          s += '/' + $item.find('a').text();
          console.log(s);
    
        }
      });
    });
    <link href="http://multi-level-push-menu.make.rs/demo/jquery.multilevelpushmenu.css" rel="stylesheet"/>
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="http://multi-level-push-menu.make.rs/demo/jquery.multilevelpushmenu.min.js"></script>
    
    <div id="menu">
      <nav>
        <h2><i class="fa fa-reorder"></i>All Categories</h2>
        <ul>
            <li>
                <a href="#"><i class="fa fa-laptop"></i>Devices</a>
                <h2><i class="fa fa-laptop"></i>Devices</h2>
                <ul>
                    <li>
                        <a href="#"><i class="fa fa-phone"></i>Mobile Phones</a>
                        <h2><i class="fa fa-phone"></i>Mobile Phones</h2>
                        <ul>
                            <li>
                                <a href="#">Super Smart Phone</a>
                            </li>
                            <li>
                                <a href="#">Thin Magic Mobile</a>
                            </li>
                            <li>
                                <a href="#">Performance Crusher</a>
                            </li>
                            <li>
                                <a href="#">Futuristic Experience</a>
                            </li>
                        </ul>
                    </li>
                    <li>
                        <a href="#"><i class="fa fa-desktop"></i>Televisions</a>
                        <h2><i class="fa fa-desktop"></i>Televisions</h2>
                        <ul>
                            <li>
                                <a href="#">Flat Super Screen</a>
                            </li>
                            <li>
                                <a href="#">Gigantic LED</a>
                            </li>
                            <li>
                                <a href="#">Power Eater</a>
                            </li>
                            <li>
                                <a href="#">3D Experience</a>
                            </li>
                            <li>
                                <a href="#">Classic Comfort</a>
                            </li>
                        </ul>
                    </li>
                    <li>
                        <a href="#"><i class="fa fa-camera-retro"></i>Cameras</a>
                        <h2><i class="fa fa-camera-retro"></i>Cameras</h2>
                        <ul>
                            <li>
                                <a href="#">Smart Shot</a>
                            </li>
                            <li>
                                <a href="#">Power Shooter</a>
                            </li>
                            <li>
                                <a href="#">Easy Photo Maker</a>
                            </li>
                            <li>
                                <a href="#">Super Pixel</a>
                            </li>
                        </ul>
                    </li>
                </ul>
            </li>
            <li>
                <a href="#"><i class="fa fa-book"></i>Magazines</a>
                <h2><i class="fa fa-book"></i>Magazines</h2>
                <ul>
                    <li>
                        <a href="#">National Geographics</a>
                    </li>
                    <li>
                        <a href="#">The Spectator</a>
                    </li>
                    <li>
                        <a href="#">Rambler</a>
                    </li>
                    <li>
                        <a href="#">Physics World</a>
                    </li>
                    <li>
                        <a href="#">The New Scientist</a>
                    </li>
                </ul>
            </li>
            <li>
                <a href="#"><i class="fa fa-shopping-cart"></i>Store</a>
                <h2><i class="fa fa-shopping-cart"></i>Store</h2>
                <ul>
                    <li>
                        <a href="#"><i class="fa fa-tags"></i>Clothes</a>
                        <h2><i class="fa fa-tags"></i>Clothes</h2>
                        <ul>
                            <li>
                                <a href="#"><i class="fa fa-female"></i>Women's Clothing</a>
                                <h2><i class="fa fa-female"></i>Women's Clothing</h2>
                                <ul>
                                    <li>
                                        <a href="#">Tops</a>
                                    </li>
                                    <li>
                                        <a href="#">Dresses</a>
                                    </li>
                                    <li>
                                        <a href="#">Trousers</a>
                                    </li>
                                    <li>
                                        <a href="#">Shoes</a>
                                    </li>
                                    <li>
                                        <a href="#">Sale</a>
                                    </li>
                                </ul>
                            </li>
                            <li>
                                <a href="#"><i class="fa fa-male"></i>Men's Clothing</a>
                                <h2><i class="fa fa-male"></i>Men's Clothing</h2>
                                <ul>
                                    <li>
                                        <a href="#">Shirts</a>
                                    </li>
                                    <li>
                                        <a href="#">Trousers</a>
                                    </li>
                                    <li>
                                        <a href="#">Shoes</a>
                                    </li>
                                    <li>
                                        <a href="#">Sale</a>
                                    </li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                    <li>
                        <a href="#">Jewelry</a>
                    </li>
                    <li>
                        <a href="#">Music</a>
                    </li>
                    <li>
                        <a href="#">Grocery</a>
                    </li>
                </ul>
            </li>
            <li>
                <a href="#">Collections</a>
            </li>
            <li>
                <a href="#">Credits</a>
            </li>
        </ul>
      </nav>
    </div>

    【讨论】:

    • 谢谢,但如何深入到根路径是我的基本要求。
    • path[0] =
    • 路径是一个数组,可以从数组中拉取子对象
    • 使用路径对象遍历示例更新答案...希望这会有所帮助:)
    • 感谢更新,我真的希望它像“所有类别\设备\手机\超级智能手机”
    猜你喜欢
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 2011-02-07
    • 2018-12-19
    • 2018-04-29
    • 1970-01-01
    相关资源
    最近更新 更多