Jquery 获取此元素和下一个已知元素之间的文本
谁能告诉我下面的代码有什么问题吗Jquery 获取此元素和下一个已知元素之间的文本,jquery,Jquery,谁能告诉我下面的代码有什么问题吗 <table> <tr> <td> <input type="radio" name="rinput">$100 <br> <input type="radio" name="rinput">$200 <br> </td> </tr> </table> <script> $('tab
<table>
<tr>
<td>
<input type="radio" name="rinput">$100 <br>
<input type="radio" name="rinput">$200 <br>
</td>
</tr>
</table>
<script>
$('table').click(function () {
$('input[type="radio"]').each(function() {
if($(this).is(':checked')) {
var text = $(this).nextUntil('br').text();
alert(text);
}
});
});
</script>
100美元
200美元
$(“表”)。单击(函数(){
$('input[type=“radio”]”)。每个(函数(){
如果($(this).is(':checked')){
var text=$(this.nextUntil('br').text();
警报(文本);
}
});
});
基本上,我试图在当前元素“$(this)”和下一个元素“br”(如果选中)之间获取文本
为什么要使用value属性我认为使用jquery可以很容易地获得值
<table>
<tr>
<td>
<input type="radio" name="rinput" value="$100"> <br>
<input type="radio" name="rinput" value="$200"> <br>
</td>
</tr>
</table>
$(this)
是您的输入,.nextUntil('br')
获取输入和br,而不是文本节点,.text()
获取输入和br的内容文本
如果你真的想这样做,把你的文本放在跨度或任何其他元素中
<table>
<tr>
<td>
<input type="radio" name="rinput"><span>$100</span><br>
<input type="radio" name="rinput"><span>$200</span><br>
</td>
</tr>
</table>
<script>
$('table').click(function () {
$('input[type="radio"]').each(function() {
if($(this).is(':checked')) {
var text = $(this).nextUntil('br').text();
alert(text);
}
});
});
</script>
100美元
200美元
$(“表”)。单击(函数(){
$('input[type=“radio”]”)。每个(函数(){
如果($(this).is(':checked')){
var text=$(this.nextUntil('br').text();
警报(文本);
}
});
});
但我也会使用value属性。这是怎么回事?无需更改HTML:
$('table').click(function () {
text = $('input[type=radio][name=rinput]:checked')[0].nextSibling.nodeValue;
alert(text);
});
顺便说一下,由于一次只会有一个复选框选中name=rinput
,因此您的each()
方法是多余的。我在选择器中使用了[name=rinput]:选中了
为什么不在输入中使用value?实际上我没有直接访问源代码的权限。这就是我使用jQuery方法的原因。他评论说他不能更改HTML。很高兴能帮助你(:这发生在我们所有人身上!