0

div には複数のオブジェクトがあります。クラスごとにこれらすべての要素のIDを取得したい。要素の数はさまざまです。私はそれをやっています

arr= $(".listitem #checkBox").hasClass('checkedItem').attr('id');

ただし、最初のアイテムのみを返します

そして、私がそれを次のように使用する場合

arr= $(".listitem #checkBox").hasClass('checkedItem').map(function() {
     return this.id;
}).get();

コンソールのエラーはObject true has no method 'map'

すべての CheckedItemsの ID を取得する方法

4

3 に答える 3

2

この.hasClass()メソッドは、jQuery オブジェクト内のいずれかの要素がそのクラスを持っているかどうかを示すブール値を返します。ブール値には.map()メソッドがありません。

代わりに、クラスをセレクターの一部にして、jQuery オブジェクトにそのクラスの要素のみが含まれるようにします。

arr= $(".listitem #checkBox .checkedItem").map(function() {
     return this.id;
}).get();

id は一意であると想定されているため、元のセレクター".listitem #checkBox"は 1 つまたは 0 つの要素のみに一致する必要があることに注意してください。そのため、上記では、 の子孫である要素をチェックしようとしていると仮定し#checkBoxました。あなたのhtmlの構造を教えてください。それに合わせてセレクターを微調整できます...

于 2012-08-31T06:45:25.320 に答える
2

ここでの問題は、複数のアイテムを照会しようとしているのに、ID を使用して検索していることです。

arr= $(".listitem #checkBox")....

(その#checkBox部分)

このコードは決して配列を返しません。

HTML 4.01 の ID 属性仕様

于 2012-08-31T06:46:30.493 に答える
0

これを使用すると、checkeditems のすべての ID が取得されます

var selected = new Array();
$('#checkbox input:checked').hasClass('checkedItem').each(function() {
    selected.push($(this).attr('id'));
});
于 2012-08-31T06:49:35.870 に答える