jQuery each()只被调用一次

时间:2013-05-23 13:55:40

标签: jquery html radio-button

我有多个无线电组有多个选择限制,一个是名称属性,另一个是jQuery。对于每个无线电组,我在更改时将检查的属性设置为false,因此每组只能检查一个无线电。

HTML

<div id="radio_group">
    <input type="radio" name="name" value="0"/>Name
    <input type="radio" name="address" value="0"/>Address
    <input type="radio" name="phone" value="0"/>Phone
</div>
<div id="radio_group">
    <input type="radio" name="name" value="1"/>Name
    <input type="radio" name="address" value="1"/>Address
    <input type="radio" name="phone" value="1"/>Phone
</div>

的jQuery

$('#radio_group').each(function(){
    var mainElement = $(this);
    mainElement.children('input[type=radio]').on('change', function(){
        mainElement.children('input[type=radio]').not(this).prop('checked', false);
    });
});

这只适用于第一组,有任何建议吗?

编辑:

使用的类选择器而不是id:

HTML

<div class="radio_group">
    <input type="radio" name="name" value="0"/>Name
    <input type="radio" name="address" value="0"/>Address
    <input type="radio" name="phone" value="0"/>Phone
</div>
<div class="radio_group">
    <input type="radio" name="name" value="1"/>Name
    <input type="radio" name="address" value="1"/>Address
    <input type="radio" name="phone" value="1"/>Phone
</div>

的jQuery

$('.radio_group').each(function(){
    var mainElement = $(this);
    mainElement.children('input[type=radio]').on('change', function(){
        mainElement.children('input[type=radio]').not(this).prop('checked', false);
    });
});

4 个答案:

答案 0 :(得分:7)

Id 's是唯一的。您可以对任何元素使用相同的类名,但不能对多个元素使用相同的ID

<div id="radio_group" class="className">
    <input type="radio" name="name" value="0"/>Name
    <input type="radio" name="address" value="0"/>Address
    <input type="radio" name="phone" value="0"/>Phone
</div>
<div id="radio_group" class="className">
    <input type="radio" name="name" value="1"/>Name
    <input type="radio" name="address" value="1"/>Address
    <input type="radio" name="phone" value="1"/>Phone
</div>


$('.className').each(function(){
    //write logic here
});

答案 1 :(得分:1)

HTML:

<div classs="radio_group">
    <input type="radio" name="name" value="0"/>Name
    <input type="radio" name="address" value="0"/>Address
    <input type="radio" name="phone" value="0"/>Phone
</div>
<div class="radio_group">
    <input type="radio" name="name" value="1"/>Name
    <input type="radio" name="address" value="1"/>Address
    <input type="radio" name="phone" value="1"/>Phone
</div>

JQuery的:

$('.radio_group').each(function(){
    var mainElement = $(this);
    mainElement.children('input[type=radio]').on('change', function(){
        mainElement.children('input[type=radio]').not(this).prop('checked', false);
    });
});

你不能重复id

答案 2 :(得分:0)

ID是唯一标识符。因此,当使用jQuery #选择器时,它只返回1个对象。

使用类代替它,它将起作用。

答案 3 :(得分:0)

您不能多次使用相同的ID。它不是Html投诉。您可以使用同一个班级并使用. selector选择所有div