2010-10-27 2 views
3

Вот пример HTML-код:Как получить элемент с классом после текущего в JQuery?

<div id="current_element">Current element</div> 
Many unknown tags... 
<div class="target">This is target element</div> 
Many other tags... 

Обратите внимание, что целевой элемент и текущий элемент может не под тем же родителем, поэтому я не могу найти его с .nextAll («цель»), не так ли?

Есть простой способ найти его? Благодаря!

+0

но они находятся под одним и тем же родителем, если они только один за другим? например – joni

+0

См код ниже:

Current
Target
Они не находятся под таким же родительском праве? – Dong

+0

Итак, как вы узнаете, какой элемент является целью? Пожалуйста, объясните правило ясно, тогда это должно привести вас к ответе. –

ответ

2

Вы HTML в комментариях отличается от той, в вопросе

<div id="area1"> 
    <div id="current_element">Current</div> 
</div> 
<div id="area2"> 
    <div class="target">Target</div> 
</div> 

Что бы я сделал это, чтобы обернуть их с DIV:

<div id="mainparent"> 
    <div id="area1"> 
    <div id="current_element">Current</div> 
    </div> 
    <div id="area2"> 
    <div class="target">Target</div> 
    </div> 
<div> 

Тогда я иду назад и найти другой ребенок:

//this = .current_element 
var $target = $(this).closest("#mainparent").find(".target"); 

Надеюсь, это поможет!

10

С elemenets возвращаются в порядке документа, вы можете использовать .index(), чтобы найти следующий в наборе, содержащий как, например:

var ce = $("#current_element"), all = $("#current_element, .target"); 
var target = all.eq(all.index(ce)+1); 

You can test it out here.

+0

+1 Я использовал это в чем-то, что я написал, и это сработало как прелесть для меня, спасибо. Кредит указан в комментариях в моем коде. –

Смежные вопросы