任何人都可以通过以下代码告诉我我做错了吗?
<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>
基本上我试图在当前元素“$(this)”和下一个元素“br”之间获取文本,如果已经检查过。
答案 0 :(得分:3)
$('table').click(function () {
text = $('input[type=radio][name=rinput]:checked')[0].nextSibling.nodeValue;
alert(text);
});
顺便说一下,由于只有一个复选框一次检查name=rinput
,因此each()
方法是多余的。我在您的选择器中使用了[name=rinput]:checked
。
答案 1 :(得分:0)
为什么使用value属性我认为您可以使用jquery轻松获取值
<table>
<tr>
<td>
<input type="radio" name="rinput" value="$100"> <br>
<input type="radio" name="rinput" value="$200"> <br>
</td>
</tr>
</table>
答案 2 :(得分:0)
$(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>
但我也会使用值属性。