jQuery .next都不行?

时间:2011-08-02 08:32:17

标签: jquery jquery-selectors

我得到了这个HTML

<tr>
<td>
Main Alliase/Current Alliase:
</td>
<td><input type="text" id="maina" class="countchars" max="30"/><br />
    <span class="showchars"></span>
</td>
<td><span id="handle-1" class="selector" title="The Main Alliase with which people know you OR the alliase with which u play most <br /> <b>You'r App would be also named after this only</b>" header="Main Alliase/Current Alliase">?</span></td>
<td><div id="error-1" class="errors"></div></td>
</tr>

这是js:

$('#maina').focus(function() {
$(this).closest("tr").find(".selector").qtip('toggle', true);
    $(this).nextAll(".errors:first").html("Bla");
    $(this).siblings(".showchars").show();
});

但是,当我专注于maina时,它会完成另外两件事,但不会改变errors类的html。

为什么这样? 我做错了什么? 请帮我 感谢

2 个答案:

答案 0 :(得分:3)

我认为你应该这样做:

 $(this).closest('tr').find(".errors:first").html("Bla");

这是因为nextAll()查找兄弟姐妹(Get all following siblings of each element in the set of matched elements, optionally filtered by a selector),而maina的唯一兄弟是跨度

答案 1 :(得分:1)

正如您在this example .nextAll()上看到的那样,只会让您回到兄弟姐妹身上。

您可以使用:

$(this).parents("tr").eq(0).find(".errors:eq(0)").html("Bla");