0

コード:

<div>
    <input type='checkbox' lid='1'><label>checkbox1</label>
    <input type='checkbox' lid='2'><label>checkbox1</label>
    <input type='checkbox' lid='3'><label>checkbox1</label>
    <input type='checkbox' lid='4'><label>checkbox1</label>
</div>
<script type='text/javascript'>
    var arr = new Array("1", "2");
    $('input[type=checkbox]').each(function(){
        $.inArray($(this).attr('lid'), arr){
            $(this).attr('checked','checked')
        }
    });
</script>

配列内のアイテムと同じ「ふた」を持つすべてのチェックボックスをチェックしようとしています。現在、私の関数はすべてのチェックボックスをチェックしています。

4

5 に答える 5

0

if問題は、ステートメントを使用していないことです:

$.inArray($(this).attr('lid'), arr){
    $(this).attr('checked','checked')
}

する必要があります

if (-1 !== $.inArray($(this).attr('lid'), arr)){
    $(this).attr('checked','checked')
}
于 2012-12-21T16:51:45.843 に答える
0

$.inArrayは、-1 が見つからない数値を返すので、このようにする必要があります

$('input[type=checkbox]').each(function(){
        var found = $.inArray($(this).attr('lid'), arr) > -1;
        if(found){
           $(this).attr('checked','checked')
        }
 });

jQuery 1.6+ を使用している場合は、.attr の代わりに.prop()を使用して、要素のチェック済みプロパティを設定する必要があります

$(this).prop('checked',true)
于 2012-12-21T16:52:10.043 に答える
0

チェックボックスをチェックするには、.prop()を使用する必要があります。

$.inArrayは位置を返すので、> -1 にします。

 var arr = ['1','2'];

 $('input[type=checkbox]').each(function(){
     var cb = $(this);

     if ($.inArray(cb.attr('lid'), arr) > -1) {
         cb.prop('checked', true);
     }
 });

http://jsfiddle.net/4kehu/

于 2012-12-21T16:54:07.580 に答える
0

単純な for ループを使用しない理由

var arr = new Array("1", "2");

for(var i =0;i<arr.length;i++){
    var lid = arr[i];
    $('input[type="checkbox"][lid="'+ lid +'"]').prop('checked', true);
}

フィドルをチェック

于 2012-12-21T16:57:56.023 に答える
0

data-lidの代わりにlid使用することをお勧めします。

<input type='checkbox' data-lid='1'><label>checkbox1</label>

これらのチェックボックスをチェックするために使用します

var arr = ["1", "2"];
var myCBoxes=$('input[type=checkbox]').get().filter(function(el){
    return $.inArray($(el).attr('data-lid'), arr)!=-1;
});
$(myCBoxes).prop('checked','checked');

実施例

于 2012-12-21T17:18:50.283 に答える