3

なぜこのセレクターは、異なるグループがあるのと同じくらいループする代わりに、各ラジオ ボタンを通過するのですか? http://jsfiddle.net/nardev/3AsCm/2/

これは私がそれをテストする方法です:

<input type="radio" name="group1" />
<input type="radio" name="group1" />
<input type="radio" name="group1" />

<input type="radio" name="group2" />
<input type="radio" name="group2" />
<input type="radio" name="group2" />

js:

$('input[name^="group"]').each(function(index){
    console.log(index +": "+$(this).attr("name"));
    $(".h").append(index +": "+$(this).attr("name") +"<br />");
});
4

4 に答える 4

1

セレクターは、で始まる name 属性を持つすべての入力要素を選択しますgroup。一意の名前は除外されません。

異なるグループ名だけを印刷したい場合は、

var group = {};
$('input[name^="group"]').each(function (index) {
    var name = this.name;
    if (!group[name]) {
        group[name] = true;
        $(".h").append(index + ": " + name + "<br />");
    }
});

デモ:フィドル

于 2013-10-28T04:53:43.640 に答える
0
$('input[name^="group"]').

これにより、name開始するgroup すべてのラジオボタンが選択されるため、すべてのラジオボタンが使用されます

セレクターで始まる属性の参照

于 2013-10-28T04:52:59.760 に答える
0

これは、名前が group で始まるすべての入力タグをセレクターが要求するためです。一意の各グループからの入力タグのみが必要な場合は、より具体的に数字 (1/2) を含める必要があります。

元:

$('input[name="group1"]').each(function(index){
    console.log(index +": "+$(this).attr("name"));
    $(".h").append(index +": "+$(this).attr("name") +"<br />");
});
于 2013-10-28T04:52:34.133 に答える
0

次の方法でも、さまざまなグループを検出できます。

var xName = '';

$('input[name^="group"]').each(function (index) {
    if (xName != this.name) {
       xName = this.name;
       $(".h").append(index + ": " + xName + "<br />");  
    }
});

デモ

于 2013-10-28T05:03:07.133 に答える