我有这个jQuery语句:
$(currentEle).parent().parent("li").next().click()
其中currentEle
是li
元素。
如果语句$(currentEle).parent().parent("li").next()
的这一部分返回null
,我想在语句中添加.parent().parent("li")
。
例如:$(currentEle).parent().parent("li").parent().parent("li").next().click()
等等。
我添加了一个HTML列表以使事情更清晰。从列表中,如果currentEle被设置为表示E的li,并且我想选择列表中的下一个元素,即'F'。 $(currentEle).parent().parent("li").next()
将为null,因此$(currentEle).parent().parent("li").parent().parent("li")
将完成此任务。那么我该如何使它更通用呢?
<ul>
<li>A</li>
<li>B
<ul>
<li>C
<ul>
<li>D
<ul>
<li>E</li>
</ul>
</li>
</ul>
</li>
<li>F</li>
</ul>
</li>
</ul>
答案 0 :(得分:3)
更新回答:
我向E id
添加了li
以简化代码。
<强> jQuery的:强>
var value = ($('#theE').parents('li').filter(function(index) {
return $(this).next('li').length;
}).next().text());
alert(value); //F
<强> HTML:强>
<ul>
<li>A</li>
<li>B
<ul>
<li>C
<ul>
<li>D
<ul>
<li id="theE">E</li>
</ul>
</li>
</ul>
</li>
<li>F</li>
</ul>
</li>
</ul>
<强> JSFiddle DEMO 强>
答案 1 :(得分:1)
我认为你的意思是
function main(){
var curr = $(currentEle);
while (getParent(curr) != null){
curr = getParent(curr);
}
getParent(curr).next().click();
}
function getParent(element){
if (element.parent().length > 0 && element.parent().parent('li').length > 0){
return element.parent().parent('li');
}
return null;
}
答案 2 :(得分:0)
我认为您真正关注的是.parents()
方法,按li
过滤以查找祖先列表项:
$(currentEle).parents("li").last().next().click();
这样您就不必手动检查每个级别。