Как получить элемент с классом после текущего в JQuery? - PullRequest
3 голосов
/ 27 октября 2010

Вот пример HTML-кода:

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

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

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

Ответы [ 2 ]

10 голосов
/ 27 октября 2010

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

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

Выможете проверить это здесь .

2 голосов
/ 27 октября 2010

Ваш 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");

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

...