单击时更改无线电输入值(实际上将其更改回来)
Change radio input value on click ( change it back actually )
单击选择x2div时更改无线电输入选择:
<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>
这是我的JavaScript来更改/选择x2:
$('.selectx2').on('click', function(e) {
$(this).closest('.box').children('.inputoptions').children('.y2').prop('checked', true);
});
我哪里犯了错误?
当你使用.children()
时,它会找到元素的直接子级,y2
不是inputoptions
的直接子级。
您可以使用.find()
获取当前匹配元素集中每个元素的后代,按选择器、jQuery 对象或元素进行筛选。
用
$(this)
.closest('.box')
.children('.inputoptions')
.find('.y2') //Use find here instead of children
.prop('checked', true);
或
$(this)
.closest('.box')
.find('.inputoptions .y2')
.prop('checked', true);
$(document).ready(function() {
$('.selectx2').on('click', function(e) {
$(this).closest('.box').find('.inputoptions .y2').prop('checked', true);
});
});
<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>
相关文章:
- call()和apply()实际上是用来欺骗方法处理类似数组的对象的
- Javascript.闭包和dynamic'这'实际上具有约束力
- 页面可见性API实际上支持操作系统屏幕锁定吗
- 可以'I don’我不明白我为什么回来了
- 在 .toggleClass() 更改后将类的 ID 更改回来
- 实际上什么是redux
- 文本框搜索&回来
- 擦除画布中的矩形,但它们会回来
- 导航栏在向下滚动时会更改背景,但在向上滚动时不会更改回来
- 通过 JavaScript 更改文本/背景颜色会立即更改回来
- 防止退格键在 AngularJS 中导航回来
- 为什么 1.2 == true 返回 false 如果布尔值 (1.2) 实际上是真的
- 函数将信息返回到控制台日志,但实际上并没有执行应有的操作
- 执行上下文和变量对象在 JavaScript 中实际上是一回事吗?
- setScrollbar() 方法实际上在模态.js中做什么
- 找出骨干网“路由器”实际上得到了什么
- React路由帮助路由实际上并没有跳转到页面
- JavaScript将人类可读的日期转换为unix时间戳,然后再转换回来
- AWS Lambda调用函数没有'不要总是回来
- parentNode.removeChild然后追加回来