1

独自のチェックボックス モーダル ウィンドウがあります

<div class="tv-choices" style="display:none;"><!-- turned on via button-->
<div class="choices-title">TV</div>
<div class="choices-checkboxes">
    <div class="category_box">
        <input type="checkbox" id="getf{038}" name="getfItem" value="Adult Animated">
        <label for="get{038}">Adult Animated</label>
    </div>

    <div class="category_box">
        <input type="checkbox" id="getf{9FA}" name="getfItem" value="Anime">
        <label for="get{9FA}">Anime</label>
    </div>

    <div class="category_box">
        <input type="checkbox" id="getf{821}" name="getfItem" value="Award Shows">
        <label for="get{821}">Award Shows</label>
    </div>
</div>

今、私は多次元配列を持っています:

object_with_arrays['genreAry'+ary_Num]

Arrayobject_with_arrays[genreAry1]Adult AnimatedAnimeがあるとします。Award Showsはありません。これらのチェックボックスを jQuery 経由でチェックするにはどうすればよいでしょうか?

プロジェクト ストーリー: オンザフライでモーダル ウィンドウを作成する 9 つのボタンを生成しました。各モーダル ウィンドウは一連のチェックボックスを提供します。1 つのモーダル ウィンドウを使用しているため、以前のチェックボックスをクリアする必要があります。以下のコードが機能することがわかりましたが、チェックボックスに配列を再設定する方法がわかりません

$('.tv-choices').find(':checked').each(function() {
        $(this).removeAttr('checked');
    });
4

2 に答える 2

2
$('.modal').find('input[type="checkbox"]').each(function() {
   var state = $.inArray(this.value, object_with_arrays['genreAry1'])!=-1;

   $(this).prop('checked', state);
});

チェックボックスを反復処理し、チェックボックスの値が配列に存在するかどうかに基づいて、checked プロパティを設定しますか?

于 2013-05-03T21:21:33.520 に答える
2

jQuery を使用して属性をフィルター処理できます。1 つのアイテムのみを探している場合は、次のようになります。

$('.modal').find('input:checkbox[value="Anime"]').each(function() {
   $(this).prop('checked', true);
});

しかし、値のリストに対してチェックしたいのでfilter、コールバックで使用できます:

var searchValues = object_with_arrays['genreAry'+ary_Num]; 
//e.g. searchValues == ["Anime", "Adult Animated"]

$('.modal').find('input:checkbox').filter(function() {
   return searchValues.indexOf($(this).val()) >= 0;
}).each(function() {
   $(this).prop('checked', true);
});

他のすべてのチェックボックスもオフにする場合は、次のようにします。

$('.modal').find('input:checkbox').each(function() {
   var checked = searchValues.indexOf($(this).val()) >= 0;
   $(this).prop('checked', checked)
});
于 2013-05-03T21:23:16.623 に答える