Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery迭代嵌套html列表_Javascript_Jquery_Html_Loops - Fatal编程技术网

Javascript jQuery迭代嵌套html列表

Javascript jQuery迭代嵌套html列表,javascript,jquery,html,loops,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 hre

我有一个嵌套列表的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()进行迭代,假设上面显示的
块中的一个

我认为如果只使用
$(数据)会更容易。查找(“.thelist ul li”)
以获取
元素(和子元素)中的所有列表项

或者,如果您只想降低一个级别,可以执行
$(数据)。查找(“.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();
我是从这个想法中得到的


我希望这有帮助。

假设您上面显示的
就是
块中的一个

我认为如果只使用
$(数据)会更容易。查找(“.thelist ul li”)
以获取
元素(和子元素)中的所有列表项

或者,如果您只想降低一个级别,可以执行
$(数据)。查找(“.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();
我是从这个想法中得到的


我希望这能有所帮助。

试试这个,它会给所有标题提供链接

$(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);
});

试试这个,它会给所有的标题与链接

$(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);
});

你只需要链接和标题?是的(还有12个)你只需要链接和标题?是的(还有12个)非常感谢!现在我就是找不到方法来保持每一个级别的跟踪item@et3rnal,现在检查一下。太棒了!我用v.nextSibling检查:这太好了,谢谢!现在我就是找不到方法来保持每一个级别的跟踪item@et3rnal,现在检查一下。太棒了!我用v.nextSibling检查:D