1

jQuery1.7.2を使用しています。

それぞれが一意の会社IDを持つ3つのチェックボックスがあります。1つのチェックボックスがオンになっている場合、チェックされているボックスから作成された会社IDのリストを作成したいと思います。

<input type='checkbox' class='Company' data-companyid='1'> 1<br>
<input type='checkbox' class='Company' data-companyid='2'> 2<br>
<input type='checkbox' class='Company' data-companyid='3'> 3<br>

// SET BY CLASS
$Company = $("input.Company");

// GET COMPANY LIST 
function getCompanyList() {
    var len = $Company.length;
    for (i = 0; i < len; i++) {
         var CompanyID = $Company[i].data("companyid");
         alert(CompanyID);
    }
}
$Company.change(getCompanyList);​

何らかの理由で、ループ内のデータメソッドを介して会社IDにアクセスできません。この種のことを行う自分のコードの例はたくさんありますが、これを機能させることはできません。

私は何が欠けていますか?

http://jsfiddle.net/Msc95/

4

2 に答える 2

2

個々の会社IDをいかなる種類のデータ構造にも蓄積していません。

(チェックされた)要素の配列から値の配列を返す最も簡単な方法は、jQueryの.map関数を使用することです。

function getCompanyList() {
    var companyList = $Company.filter(':checked').map(function() {
       return $(this).data('companyid');
    }).get();
    alert(companyList);
}

.get()結果を.map()単純な配列に変換するには、呼び出しが必要です。

http://jsfiddle.net/alnitak/zfUXj/を参照してください

于 2012-08-24T18:57:43.807 に答える
2

なぜこのようなものではなく、それらを配列に入れますか?

var checkedCompanys = new Array();
 $('input.company:checked').each(function() {
     checkedCompanys.push($(this).data("companyid"));    
  });

幸運を

于 2012-08-24T19:03:48.337 に答える