我有一个嵌套列表的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()
进行迭代答案 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那里删除了孩子的想法。
我希望这会有所帮助。