我有一个非常简单的问题,就是我吃了4个小时而且还没有解决:如何使用jQuery找到具有特定类的下一个跨度? 我有以下html
<tr>
<td align="right">Име: </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找到最近的类.error
和text()
那里的消息。我尝试了nextAll()
,next("span.error")
以及其他很多东西,但没有任何帮助。
提前致谢!
答案 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')
: