0

http://jsfiddle.net/dmitryfil/4pYaW/1/

  • ブラウザ - クロム
  • デフォルトでチェックされている一連のチェックボックスがあります。
  • 2つのオプションを選択しています(オプションの値がチェックボックスにリンクされている場合)
  • 選択に基づいてチェックボックスをチェックしようとすると (2 つを選択する必要があります)、1 つのチェックボックスのみが選択されます。

HTML:

<input type="checkbox" name="item-a" checked="checked" />
<input type="checkbox" name="item-b" />
<input type="checkbox" name="item-c" />

<hr />

<select multiple>
    <option value="a">a</option>
    <option value="b">b</option>
</select>

JS:

$('input[type=checkbox]:checked').attr('checked', false);
//$('input[type=checkbox]:checked).removeAttr('checked');

$('select option').each(function(i, el){
    var val = $(this).attr('value');
    $('input[name=item-'+val+']').attr('checked', 'checked');
    //$('input[name=item-'+val+']').attr('checked', true);
});

ノート:

  • チェックボックスがデフォルトでチェックされていない場合、正常に機能します。
  • attr('checked', false) および removeAttr('checked') でチェックを外すと、異なる結果が生成されます。

ご提案いただきありがとうございます。

4

2 に答える 2

2

.propを使用してchecked、 や などの dom 要素のランタイム プロパティを変更しますselected

これらのプロパティの値は、チェック/選択ではなく、true/false などのブール値です。

$('input[name=item-'+val+']').prop('checked', true);

デモ:フィドル

于 2013-04-03T03:24:57.470 に答える
1

これを試して、

$('select option').each(function(i, el){
    var val = $(this).prop('value');
    $('input[name=item-'+val+']').prop('checked', 'checked');
    //$('input[name=item-'+val+']').attr('checked', true);
});

Demo

Aprop()は と同じではありませんattr()prop()as が属性を変更する要素のプロパティをattr()変更します (html 要素に記述されているもの)

ここで.prop() と .attr()のすべての回答を確認することを強くお勧めします

于 2013-04-03T03:26:42.563 に答える