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,在哪个DOCTYPE
xy
有效?啊,是的。。。我完全错过了那部分代码:)对不起!符合事实的我错过了名字
。谢谢。关于有效性说明,这真的取决于
DOCTYPE
@VisioN哪个DOCTYPE将
xy
有效?啊,是的。。。我完全错过了那部分代码:)对不起!符合事实的我错过了名字
。谢谢