1

次のようにチェックボックスを動的に生成しています。

entries.each(function()
{
    if($(this).find('parentcategoryid').text() == 0)                
    {
        xmlArr += '<span><input type="checkbox" data-mini="true" name="category'+$(this).find('categoryid').text()+'" id="checkbox'+$(this).find('categoryid').text()+'" class="techAreasCheckBox" style="margin-top: 5px;"/><label class="techAreasLabel">'+$(this).find('categoryname').text()+'</label></span><br>'; 
    } 
    else
    {
        xmlArr;
    }                   
}); // Entries.Each function

生成されたチェックボックスの名前は次のとおりです: カテゴリ 1、カテゴリ 2、カテゴリ 3、カテゴリ 8、カテゴリ 10、カテゴリ 54、カテゴリ 55、カテゴリ 56、カテゴリ 59、カテゴリ 62、カテゴリ 132、カテゴリ 133。

また、2、54、8、10 の 4 つの数字の配列があります。

配列内のこれらの数字で終わる name 属性を持つチェックボックスをチェックしたい。どうすればいいですか?

注: これらは動的に生成されたチェックボックスです。

4

2 に答える 2

1

チェックボックスをオンにするには、ここで説明するように、チェックした属性を追加するだけです。

以下は1つの解決策です。まず、IDが高速であるため、毎回検索するのではなく、IDを保存する必要があります。次に、$。inArray関数を使用して、チェックする必要のある数値を含む配列にカテゴリが含まれているかどうかを判断しました。最後に、3進数を使用してchecked属性を追加しました。

var numberArray = [2, 54, 8, 10];

entries.each(function() {
     if($(this).find('parentcategoryid').text() == 0) {
          var categoryId = $(this).find('categoryid').text();
          var categoryInArray = $.inArray(categoryId, numberArray) !== -1;

          xmlArr += '<span><input type="checkbox" data-mini="true" name="category'+categoryId+'" id="checkbox'+categoryId+'" class="techAreasCheckBox" style="margin-top: 5px;"' + categoryInArray ? ' checked="checked" ' : '""/><label class="techAreasLabel">'+$(this).find('categoryname').text()+'</label></span><br/>'; 
     }
}); // Entries.Each function

または、別のifステートメントを使用することもできます。

entries.each(function() {
     if($(this).find('parentcategoryid').text() == 0) {
          var categoryId = $(this).find('categoryid').text();
          var categoryInArray = $.inArray(categoryId, numberArray) !== -1;

          if(categoryInArray) {
          xmlArr += '<span><input type="checkbox" data-mini="true" name="category'+categoryId+'" id="checkbox'+categoryId+'" class="techAreasCheckBox" style="margin-top: 5px;" checked="checked"/><label class="techAreasLabel">'+$(this).find('categoryname').text()+'</label></span><br/>'; 
          } else {
          xmlArr += '<span><input type="checkbox" data-mini="true" name="category'+categoryId+'" id="checkbox'+categoryId+'" class="techAreasCheckBox" style="margin-top: 5px;"/><label class="techAreasLabel">'+$(this).find('categoryname').text()+'</label></span><br/>'; 
          }
     }
}); // Entries.Each function
于 2013-01-07T12:52:40.640 に答える
1

を使用jQuery.each()して数値の配列を反復処理し、id等しい要素category-X(Xは現在の数値)を持つ要素を選択します。

$.each(numbers, function(i, num) {
    $('#category-' + num).prop('checked', true);
});

または、要素を作成するときにのみこれを行いたい場合は、必要checkedに応じて HTML に属性を追加するだけです。

于 2013-01-07T12:49:52.820 に答える