2

このコードは機能していません:

$("div").hasClass("testSection").attr("id");

次のエラー メッセージが表示されます。

TypeError: $(...).hasClass(...).attr は関数ではありません

何が問題なのですか?

4

5 に答える 5

5

.hasClass("testSection")ブール値を返します。チェーンする jQuery オブジェクトを返しません。

また、複数の要素を一致させる場合、次のような特定の関数を使用する.attrと、最初に選択した要素から返されることも理解しています。

$("div").attr('id'); => $('div').eq(0).attr('id');
于 2013-02-06T16:28:35.153 に答える
4

問題はhasClass()、jQuery オブジェクトではなくブール値を返すためです。したがってattr()、ブール値を呼び出すと、表示されているエラーが発生します。

指定されたクラスを持つ div が 1 つしかないと仮定すると、セレクターでクラスを使用できます。

var id = $("div.testSection").prop("id");

クラスに複数の div がある場合は、ループする必要があります。

$("div.testSection").each(function() {
    var id = this.id;
    // do something with the id...
});
于 2013-02-06T16:30:29.773 に答える
3

使用したいfilter

$("div").filter(".testSection").attr("id");

hasClass関数を持つ jQuery オブジェクトではなく、ブール値 (true/false) を返しattrます。

于 2013-02-06T16:29:06.177 に答える
2

hasClass はオブジェクトではなく true または false を返します。これを使用して、

$("div.testSection")
于 2013-02-06T16:29:14.850 に答える
0

一連の要素のすべての ID を取得しようとしている場合は、for コンストラクトまたは jQuery の each 関数を使用してそれらを反復処理する必要があります。また、attr() よりも prop() を使用することをお勧めしますが、この場合はそれほど重要ではありません。

JSFiddle の例: http://jsfiddle.net/turiyag/QXyWV/1/

$.each($("div.foo"),function(index,value) {
    log($(value).prop("id") + " ");
});
于 2013-02-06T16:41:28.277 に答える