jQuery迭代嵌套的html列表

时间:2018-04-19 05:42:26

标签: javascript jquery html loops

我有一个嵌套列表的HTML代码,让我很难用jQuery阅读!

我正在使用

$.get();

然后使用

获取html
$(data).find(".thelist ul");

仅获取类似

的列表
<ul> 
    <li><a href="Draft-Documents-Page_294813708.html">Draft Page</a>
        <ul>
            <li><a href="Batch-Closing-Version-3.7_295567410.html">Batch Version 7</a></li>
        </ul>
    </li>

    <li><a href="Infection-Prevention-and-Control-System_491532.html">info Control System</a>
        <ul>
            <li><a href="About-info_261488773.html">About info</a></li>
        </ul>



        <ul>
            <li><a href="Applicati.html">Application</a>
                <ul>
                    <li><a href="Functionality.html">Functionality</a>

                        <ul>
                            <li>
                                <a href="Access.html">Access</a>
                            </li>
                        </ul>
                        <ul>
                            <li><a href="Login.html">Login</a>
                            </li>
                        </ul>
                        <ul>
                            <li><a href="info.html">info Desktop</a>
                            </li>
                        </ul>
                        <ul>
                            <li><a href="Search.html">Search</a>
                            </li>
                        </ul>
                        <ul>
                            <li><a href="info-Mobile.html">info Mobile</a>
                            </li>
                        </ul>

                    </li>
                </ul>
                </li>
        </ul>

            <ul>
                <li><a href="info.html">Support</a></li>
            </ul>
            <ul>
                <li><a href="Technical.html">Technical Manual</a>

                    <ul>
                        <li><a href="Formatting.html">Formatting</a>
                        </li>
                    </ul>
                    <ul>
                        <li><a href="Troubleshooting.html">Troubleshooting</a></li>
                    </ul>
                </li>
            </ul>
    </li>
</ul>

实际列表超过200项!它可以达到7个级别!

我得到的是每个有孩子的项目,文本都包括他们的所有文本!。

我需要获取每个文本和链接然后追加或生成我自己的列表,具有相同级别但不同的html结构

这是最好的方法吗?

我尝试使用$ each()

进行迭代

2 个答案:

答案 0 :(得分:2)

试试这个,它将为所有标题提供链接。

$(function(){
    var links = [];
    $( "ul" ).find( "a" ).each(function(k,v){
        links.push({ title : $(v).text(), link : $(v).attr('href'), level : $(v).parents('ul').length });
    });
    console.log(links);
});

答案 1 :(得分:0)

假设您显示的<ul>.thelist区域内的$(data).find(".thelist ul li")

如果您只使用<ul>获取$(data).find(".thelist ul>li")元素(和子元素)中的所有列表项,我认为会更容易。

或者,如果您只想降低一个级别,则可以执行$("#foo") .clone() //clone the element .children() //select all the children .remove() //remove all the children .end() //again go back to selected element .text();

并且,您可以使用以下方法来避免选择子节点:

<meta name="viewport" content="width=device-width, initial-scale=1">

我从here那里删除了孩子的想法。

我希望这会有所帮助。