次のコードで JavaScript を使用して、HTML から画像を取得しています。
var images = document.getElementsByTagName("img");
JavaScript を正しく理解している場合、これは HTMLImageElement タイプのオブジェクトを返します。.className 変数を使用して変数に直接アクセスできますが、Jquery .hasClass() メソッドを呼び出すことはできません。どうしてこれなの?
次のコードで JavaScript を使用して、HTML から画像を取得しています。
var images = document.getElementsByTagName("img");
JavaScript を正しく理解している場合、これは HTMLImageElement タイプのオブジェクトを返します。.className 変数を使用して変数に直接アクセスできますが、Jquery .hasClass() メソッドを呼び出すことはできません。どうしてこれなの?
.hasClass()
jQuery関数だからです。ネイティブ DOM オブジェクトではなく、jQuery オブジェクトで呼び出します。簡単な解決策は、jquery オブジェクトを作成することです。
var domElement = document.getElementById('something');
var hasSomeClass = $(domElement).hasClass('some-class');
もちろん、すでに jQuery を使用している場合は、次のようにしてください。
var $images = $('img');
jqueryで:
$("img").each(function(){
if($(this).hasClass("className")){
}
});
これは、jQuery 要素が HTML 要素と異なるためです。jQuery 要素は特別な jQuery オブジェクトであり、これらに対してのみ jQuery メソッドを実行できます。ただし、次のように要素を jQuery オブジェクトに変換できます。
var images=document.getElementsByTagName('img');
var jQueryImages=$(images)
ただし、次のように jQuery で直接行うこともできます。
var jQueryImages=$('img');
最後に、その関数は を返しませんHTMLImageElement
。NodeList
ドキュメントに複数のimg
要素が存在する可能性があるため、 を返します。ANodeList
は基本的に要素の配列です。