如何找到" next"使用jQuery渲染布局中的元素?

时间:2015-06-02 17:15:39

标签: javascript jquery

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的复杂遍历。显而易见的是,已知它们在渲染输出中立即相邻。

3 个答案:

答案 0 :(得分:1)

http://jsfiddle.net/xa13oq7z/

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