点击时更改无线电输入值(实际更改)

时间:2015-01-27 07:00:59

标签: javascript jquery html

单击selectx2 div:

,打开更改无线电输入选择
                <div class="row">
                    <div class="box">
                        <div class="inputoptions">
                            <span><input type="radio" name="abc" value="x1" checked="checked" class="y1" /> x1</span>
                            <span><input type="radio" name="abc" value="x2" class="y2" /> x2</span>
                            <span><input type="radio" name="abc" value="x3" class="y3" /> x3</span>
                        </div>
                        <div class="selectx2">select x2</div>
                        <div class="clear"></div>
                    </div>

这是我要更改/选择x2的JavaScript:

$('.selectx2').on('click', function(e) {
    $(this).closest('.box').children('.inputoptions').children('.y2').prop('checked', true);
});

我在哪里弄错了?

1 个答案:

答案 0 :(得分:1)

当您使用.children()时,它会找到元素的直接子元素,y2不是inputoptions的直接子元素。

您可以使用.find()

  

获取当前匹配元素集中每个元素的后代,由选择器,jQuery对象或元素过滤。

使用

    $(this)
     .closest('.box')
     .children('.inputoptions')
     .find('.y2') //Use find here instead of children
     .prop('checked', true);                                                

OR

 $(this)
     .closest('.box')
     .find('.inputoptions .y2')
     .prop('checked', true);

&#13;
&#13;
$(document).ready(function() {
  $('.selectx2').on('click', function(e) {
    $(this).closest('.box').find('.inputoptions .y2').prop('checked', true);
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
  <div class="box">
    <div class="inputoptions">
      <span><input type="radio" name="abc" value="x1" checked="checked" class="y1" /> x1</span>
      <span><input type="radio" name="abc" value="x2" class="y2" /> x2</span>
      <span><input type="radio" name="abc" value="x3" class="y3" /> x3</span>
    </div>
    <div class="selectx2">select x2</div>
    <div class="clear"></div>
  </div>
</div>
&#13;
&#13;
&#13;