Jquery 如何选择混合输入的组元素之一?
如何选择混合输入的组元素之一 我有以下代码:Jquery 如何选择混合输入的组元素之一?,jquery,forms,jquery-selectors,radio-button,dom-traversal,Jquery,Forms,Jquery Selectors,Radio Button,Dom Traversal,如何选择混合输入的组元素之一 我有以下代码: <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="
<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>
但它不起作用。
我认为
parent
对象的问题。谢谢。您的变体有很多问题。首先,选择器构造中有一个问题:$($(this).parent+'input[type=“radio”:checked')
。这里您将jQuery对象与字符串选择器混合使用,这是不正确的。此外,父元素是使用方法parent()
获取的,但不是属性。然后,jQuery对象没有选中属性
$('.item textarea').on('click', function() {
$(this).closest('.item')
.find(':radio[name="' + this.name + '"]')
.prop("checked", false);
});
考虑到所描述的所有问题,我们可以得到以下可行代码:
$('.item textarea').on('click', function() {
$(this).siblings(":radio").prop("checked", false);
});
演示:
顺便说一句,如果当用户进入textarea
时,您需要取消选中所有收音机,不仅要使用鼠标单击
,而且要使用键盘,您可以使用聚焦
事件。您的变体中存在许多问题。首先,选择器构造中有一个问题:$($(this).parent+'input[type=“radio”:checked')
。这里您将jQuery对象与字符串选择器混合使用,这是不正确的。此外,父元素是使用方法parent()
获取的,但不是属性。然后,jQuery对象没有选中属性
$('.item textarea').on('click', function() {
$(this).closest('.item')
.find(':radio[name="' + this.name + '"]')
.prop("checked", false);
});
考虑到所描述的所有问题,我们可以得到以下可行代码:
$('.item textarea').on('click', function() {
$(this).siblings(":radio").prop("checked", false);
});
演示:
顺便说一句,如果您需要在用户进入textarea
时取消选中所有收音机,不仅要使用鼠标单击
,而且要使用键盘,您可以使用聚焦
事件。如果您想基于名称
属性,您可以使用:
如果您需要的单选按钮始终位于相同的div.item
,您甚至可以编写更严格的解决方案。在本例中,我们首先查找具有类项
的最近父项,并在其中搜索具有相同名称
属性的收音机
$('.item textarea').on('click', function() {
$(this).closest('.item')
.find(':radio[name="' + this.name + '"]')
.prop("checked", false);
});
一个有效期注释:
是,它不能包含内容和结束属性。您必须使用一个元素给它一个,嗯,标签:
<label><input type="radio" name="group1" value="value1" /> Value1</label>
Value1
如果要基于名称属性,可以使用:
如果您需要的单选按钮始终位于相同的div.item
,您甚至可以编写更严格的解决方案。在本例中,我们首先查找具有类项
的最近父项,并在其中搜索具有相同名称
属性的收音机
$('.item textarea').on('click', function() {
$(this).closest('.item')
.find(':radio[name="' + this.name + '"]')
.prop("checked", false);
});
一个有效期注释:
是,它不能包含内容和结束属性。您必须使用一个元素给它一个,嗯,标签:
<label><input type="radio" name="group1" value="value1" /> Value1</label>
Value1
关于有效性说明,它实际上取决于DOCTYPE
@VisioN,在哪个DOCTYPExy
有效?啊,是的。。。我完全错过了那部分代码:)对不起!符合事实的我错过了名字
。谢谢。关于有效性说明,这真的取决于DOCTYPE
@VisioN哪个DOCTYPE将xy
有效?啊,是的。。。我完全错过了那部分代码:)对不起!符合事实的我错过了名字
。谢谢