jQuery用class查找下一个元素

时间:2011-03-05 13:50:56

标签: jquery class element next

我有一个非常简单的问题,就是我吃了4个小时而且还没有解决:如何使用jQuery找到具有特定类的下一个跨度? 我有以下html

<tr>
    <td align="right">Име:&nbsp;</td>
    <td align="left">
         <input type="text" value="<?=$profileSQL['user_name']; ?>" name="user_name" class="input required" />
    </td>
</tr>
<tr>
    <td align="right" colspan="2">
         <span class="error"></span>
    </td>
</tr>

我用jQuery验证它。 我想如果有一个错误消息,用js(只是一个字符串)生成,jQuery找到最近的类.errortext()那里的消息。我尝试了nextAll()next("span.error")以及其他很多东西,但没有任何帮助。

提前致谢!

4 个答案:

答案 0 :(得分:2)

我知道这可能不是你想要的,但如果你输入了输入,就像这样:

var input = $('input[name="user_name"]');

然后你可以这样做:

input.parents('tr').eq(0).next().find('.error').text(nameErrEmptyMsg);

答案 1 :(得分:2)

问题是.next()和.nextAll()只搜索兄弟姐妹(具有相同父元素的元素)。

来自jQuery文档:

  

描述:获取以下所有内容   这组中每个元素的兄弟姐妹   匹配元素,可选择过滤   由选择者。

在你的情况下,你有:

  <tr> 
     <td> title here</td> 
     <td><input name="user_name"/> </td>
   </tr>
   <tr>
     <td colspan="2">
       <span class="error"></span>
     </td> 
   </tr>

据我所知,你的JQuery代码是在输入上运行的,对吧?在这种情况下,在调用newxt()或nextAll()之前,你应该首先上升2级,直到然后选择下一级,因为有你想要找到的,所以:

这是一个检查它的工作示例: http://jsfiddle.net/EM5Gw/

答案 2 :(得分:0)

尝试

  console.log($("td>span").next().find(".error").text())

答案 3 :(得分:0)

您可以使用next('span.error')

http://jsfiddle.net/wPZgg/