jQuery' next()返回元素的下一个直接兄弟 但是,即使该元素具有不同的谱系,如何找到下一个渲染的元素? 例如,考虑这个(简单化)HTML:
<div id='a'>A
<div id='b'>B
<div id='c'>C</div>
</div>
<div>D</div>
</div>
呈现类似:
A
B
C
D
你的眼睛自然会看到D跟随C,但在DOM中他们是叔叔/侄子。
那么,如何找到"D"
给出#c
?
var c = $('#c'); // Pretty straightforward
var x = c.someJqFunction(with some params);
注意:除了存在之外,假装你对D一无所知。它可能是#c真正的下一个兄弟,或者它可能来自#c的复杂遍历。显而易见的是,已知它们在渲染输出中立即相邻。
答案 0 :(得分:1)
function getNext(id) {
var elm = $('#' + id);
return elm.children(':first')[0] || elm.next()[0] || elm.parent().next()[0];
}
答案 1 :(得分:0)
这就是你如何做到的
$(function(){
console.log($('#c').parent().siblings().html());
});
注意:这假设div
id "b"
只有一个兄弟{/ 1}}
查看Fiddle链接
答案 2 :(得分:0)
会这样吗?
function getNext(elem){
var next = elem.next();
if(next.length){
if(next.get(0).offsetParent != null){
return next;
}else{
return getNext(next);
}
}else{
return getNext(elem.parent());
}
}