【问题标题】:Find element but next of some element查找元素但某个元素的下一个
【发布时间】:2013-05-29 10:02:43
【问题描述】:

如何找到一些元素但下一个元素?

HTML:

<div id="container">
    <div class="box id_1">1</div>
    <div class="box id_2">2</div>
    <div class="break">{BREAK}</div>
    <div class="box id_1">1</div>     // <--- THIS !
    <div class="box id_2">2</div>     // <--- and should work when I detect in THIS also!
</div>

我使用.next().filter() 似乎不起作用:(

$('#container > .box').next('.break').filter('.id_1').addClass('found');

游乐场: http://jsfiddle.net/l2aelba/2zBWv/

【问题讨论】:

    标签: jquery filter find next


    【解决方案1】:

    我认为你可以这样使用.next()

    $('#container > .break').next('.id_1').addClass('found');
    

    Find in fiddle here


    如果你想只影响.id_1 的第一个.break 然后:

    $('#container > .break:first').next('.id_1').addClass('found');
    

    Find this in fiddle here


    更新:

    如果你想影响.id_2,那么应该使用.nextAll()

    $('#container > .break:first').nextAll('.id_2').addClass('found');
    

    Find .nextAll() in fiddle here

    【讨论】:

    • 但是,如果我检测到.id_2 呢?
    • 啊....!为此,您必须使用.nextAll('.id_2')。您可以将.next('.id_1') 替换为.nextAll('.id_2')
    【解决方案2】:

    使用.nextAll.first 的组合

    $('#container > .box').nextAll('.break')
                          .first().next().filter('.id_1').addClass('found');
    

    Check Fiddle

    【讨论】:

    • 你的代码不起作用,但是这个.nextAll()帮助我+1
    • 对不起,我忘了检查我是否会检测到.id_2
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 2014-06-02
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多