Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 获取此元素和下一个已知元素之间的文本_Jquery - Fatal编程技术网

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。很高兴能帮助你(:这发生在我们所有人身上!