1

次のコードで JavaScript を使用して、HTML から画像を取得しています。

var images = document.getElementsByTagName("img");

JavaScript を正しく理解している場合、これは HTMLImageElement タイプのオブジェクトを返します。.className 変数を使用して変数に直接アクセスできますが、Jquery .hasClass() メソッドを呼び出すことはできません。どうしてこれなの?

4

3 に答える 3

7

.hasClass()jQuery関数だからです。ネイティブ DOM オブジェクトではなく、jQuery オブジェクトで呼び出します。簡単な解決策は、jquery オブジェクトを作成することです。

var domElement = document.getElementById('something');
var hasSomeClass = $(domElement).hasClass('some-class');

もちろん、すでに jQuery を使用している場合は、次のようにしてください。

var $images = $('img');
于 2013-10-24T23:59:46.350 に答える
1

jqueryで:

$("img").each(function(){
   if($(this).hasClass("className")){

   }
});
于 2013-10-25T00:04:30.450 に答える
0

これは、jQuery 要素が HTML 要素と異なるためです。jQuery 要素は特別な jQuery オブジェクトであり、これらに対してのみ jQuery メソッドを実行できます。ただし、次のように要素を jQuery オブジェクトに変換できます。

var images=document.getElementsByTagName('img');
var jQueryImages=$(images)

ただし、次のように jQuery で直接行うこともできます。

var jQueryImages=$('img');

最後に、その関数は を返しませんHTMLImageElementNodeListドキュメントに複数のimg要素が存在する可能性があるため、 を返します。ANodeListは基本的に要素の配列です。

于 2013-10-25T00:03:11.133 に答える