Javascript 原型:如何选择嵌套元素?
我有以下html结构:Javascript 原型:如何选择嵌套元素?,javascript,css-selectors,prototypejs,Javascript,Css Selectors,Prototypejs,我有以下html结构: <div class="main"> <ul id="nav"> <li> <a></a> <div> <ul class="level0"> <li> .......
<div class="main">
<ul id="nav">
<li>
<a></a>
<div>
<ul class="level0">
<li>
.......
</li>
.......
<li>
.........
</li>
</ul>
</div>
</li>
......
<li>
<a></a>
<div>
<ul class="level0">
<li>
.........
</li>
.........
<li>
.........
</li>
</ul>
</div>
</li>
</ul>
</div>
但现在,对于每个元素,我必须通过如下方式选择另一个li节点:
element > div > ul
但我不明白在得到每个元素后如何组合元素和css选择器
附言:
所以,我试过了,还是没用。我有空名单
var arrLi = $('nav').childElements();
arrLi.each(function(node)
{
list = $(node).down('ul.level0');
alert(list);
list.each(function(nodeLi)
{
alert(nodeLi.nodeName);
});
});
如果只需要第一级
元素,请使用:
$('.main ul#nav li')
$('.main ul.level0 li')
如果只需要第二级
元素,请使用:
$('.main ul#nav li')
$('.main ul.level0 li')
如果两者都需要,可以执行以下操作:
$('.main li').each(function() {
if($(this).parent().hasClass('level0')) {
// second level <li>
}
else {
// first level <li>
}
});
$('.main li')。每个(函数(){
if($(this.parent().hasClass('level0')){
//二级
}
否则{
//第一级
}
});
我解决了我的问题:
var arrLi = $('nav').childElements();
arrLi.each(function(node)
{
nodeUl = $(node).select('div > ul.level0');
if (nodeUl.length > 0)
{
/*
here was a problem because nodeUL has array type here.
I have only one ul element in the first node, therefore
call it using nodeUl[0].
*/
var nodesLi = nodeUl[0].childElements();
nodesLi.each(function(nodeLi)
{
alert(nodeLi.nodeName);
});
}
});
谢谢大家的评论 Thx,我试过了,并更新了一点问题。然后我得到了李将军的名单。我需要分别获取每个Li列表(级别2)。$('main ul.level0 Li')将获取所有第二级别