JQuery - 找到第一个兄弟匹配选择器

时间:2014-05-14 16:57:11

标签: jquery next siblings

如何获得列表中与选择器匹配的第一个(下一个)元素?

示例:

<table>
  <tr class="test"><td>not this one</td></tr>
  <tr><td><a title="test">click</a></td></tr>
  <tr><td>not this one</td></tr>
  <tr class="test"><td>this one</td></tr>
  <tr class="test"><td>ignore this as well</td></tr>
</table>

$("a").on('click', function(eve){
  $(this).parents("tr").???(".test").toggle();
});

修改

我需要以下一行。兄弟姐妹也会得到其他人(比如第一行)

3 个答案:

答案 0 :(得分:19)

使用.nextAll()获取元素的后续兄弟,并:first获取第一个匹配的元素。

试试这个:

$("a").on('click', function(eve){
  $(this).parents("tr").nextAll(".test:first").toggle();
});

<强> DEMO

答案 1 :(得分:0)

您可以尝试使用jQuery eq();

  

给定一个表示一组DOM元素的jQuery对象,.eq()方法从该集合中的一个元素构造一个新的jQuery对象。提供的索引标识该元素在集合中的位置。 Documentation on jQuery

<table>
  <tr class="test"><td>not this one</td></tr>
  <tr><td><a title="test">click</a></td></tr>
  <tr><td>not this one</td></tr>
  <tr class="test"><td>this one</td></tr>
  <tr class="test"><td>ignore this as well</td></tr>
</table>

代码将选择2º同胞,并使用&lt; tr>这是被点击的父母之一&lt; a&gt; (红色反过来,你得到了你的代码):

$("a").on('click', function(){
  $(this).parents("tr").siblings(".test").eq(1).toggle();
});

<强> Check the Pen!

答案 2 :(得分:0)

您可以使用 Sub Elina_Tutti_I_Doppioni_2() Dim LastRow As Long, K As Long, MemoCanc As Variant Application.ScreenUpdating = False With ActiveSheet .Columns("A").Sort .[a1], Header:=xlGuess LastRow = [COUNTA(A:A)] For K = LastRow To 2 Step -1 If .Cells(K, 1) = .Cells(K - 1, 1) Or MemoCanc = .Cells(K, 1) Then MemoCanc = .Cells(K, 1) .Rows(K).EntireRow.Delete End If Next End With Application.ScreenUpdating = True End Sub 选择器:

.next()

对于您的情况,请使用

Description: Get the immediately following sibling of each element in the set of matched elements. If a selector is provided, it retrieves the next sibling only if it matches that selector.

$(this).parents("tr").next().next()