如何选择混合输入的组元素之一?
我有以下代码:
<div class="item">
<input type="radio" name="group1" value="value1">Value1</input>
<input type="radio" name="group1" value="value2">Value2</input>
<input type="radio" name="group1" value="value3">Value3</input>
<textarea name="group1"></textarea>
</div>
<div class="item">
<input type="radio" name="group2" value="value1">Value1</input>
<input type="radio" name="group2" value="value2">Value2</input>
<input type="radio" name="group2" value="value3">Value3</input>
<textarea name="group2"></textarea>
</div>
我想:当我们点击文本区域时,单选按钮应该丢失checked
属性。
喜欢:
$('.item textarea').on('click', function(){
$($(this).parent + 'input[type="radio":checked]').each(function(){
$(this).checked = false;
});
});
但是它不起作用。
我认为 parent
对象有问题。谢谢。
最佳答案
您的变体存在很多问题。首先,您的选择器构造存在问题:$($(this).parent + 'input[type="radio":checked]')
。这里你将 jQuery 对象与字符串选择器混合在一起,这是不正确的。此外,父元素是通过方法 parent()
获取的,而不是属性。那么,jQuery 对象没有 checked
属性。
考虑到所描述的所有问题,我们可以获得这个可行的代码:
$('.item textarea').on('click', function() {
$(this).siblings(":radio").prop("checked", false);
});
演示: http://jsfiddle.net/TEk9c/
顺便说一句,如果您需要在用户进入 textarea
时不仅使用鼠标 click
而是使用键盘来取消选中所有单选按钮,您可以使用 focus
事件代替。
关于jquery - 如何从混合输入的组元素中做出选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10494722/