使用jQuery选择多个单选按钮组的第一个单选按钮

Vin*_*ent 3 jquery jquery-selectors

我想自动选择多个单选按钮组的第一个单选按钮.

<div class="element">
<input type="radio" name="group1" value="1">
<input type="radio" name="group1" value="2">
<input type="radio" name="group1" value="3">
</div>

<div class="element">
<input type="radio" name="group2" value="1">
<input type="radio" name="group2" value="2">
<input type="radio" name="group2" value="3">
</div>
Run Code Online (Sandbox Code Playgroud)

这是事情,虽然这有效:

$('.element').each(function(){
    $(this).find('input[type=radio]:first').attr('checked', true);
});
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么我不能使用:first方法使用:first方法

下面的代码不起作用:它只选择第一个div中的第一个单选按钮,你能告诉我为什么吗?

$('.element input[type=radio]:first').each(function(){
    $(this).attr('checked', true);
});
Run Code Online (Sandbox Code Playgroud)

谢谢

Rob*_*b W 10

第一个选择器循环遍历每个.element.第二个选择器遍历每个选择器element input[type=radio]:first,它只包含一个元素.

我已将您的代码翻译成人类可读的序列:

  1. 选择.element
    Go through each .element
    查找无线电输入元素
    Set 的第一个出现位置checked=true.
  2. 选择第一个无线电输入元素.element.
    循环遍历与选择器匹配的每个元素(只有一个)
    Set checked=true.


替代方式:

//Alternative method
$('element').each(function(){
    $('input[type=radio]', this).get(0).checked = true;
});

//Another method
$('element').each(function(){
    $('input[type=radio]:first', this).attr('checked', true);
});
Run Code Online (Sandbox Code Playgroud)