我從我的HTML使用JavaScript用下面的代碼檢索圖片:爲什麼我不能在對象HTMLImageElement上使用.hasClass(value)方法?
var images = document.getElementsByTagName("img");
如果我理解正確的JavaScript這將返回類型HTMLImageElement的對象。我可以直接使用.className變量來訪問它的變量,但我無法調用它的Jquery .hasClass()方法。爲什麼是這樣?
我從我的HTML使用JavaScript用下面的代碼檢索圖片:爲什麼我不能在對象HTMLImageElement上使用.hasClass(value)方法?
var images = document.getElementsByTagName("img");
如果我理解正確的JavaScript這將返回類型HTMLImageElement的對象。我可以直接使用.className變量來訪問它的變量,但我無法調用它的Jquery .hasClass()方法。爲什麼是這樣?
因爲.hasClass()
是一個jQuery函數。你可以在jQuery對象上調用它,而不是本地DOM對象。簡單的解決方案是創建一個jQuery對象:
var domElement = document.getElementById('something');
var hasSomeClass = $(domElement).hasClass('some-class');
當然,如果你使用jQuery已經,爲什麼不只是這樣做:
var $images = $('img');
這是因爲jQuery元素是從HTML不同元素。 jQuery元素是特殊的jQuery對象,你只能在這些對象上運行jQuery方法。但是,你可以把一個元素的jQuery這樣的:
var images=document.getElementsByTagName('img');
var jQueryImages=$(images)
,但你也可以用jQuery做它直接像這樣:
var jQueryImages=$('img');
而最後一件事,就是功能不返回一個HTMLImageElement
。它返回一個NodeList
,因爲文檔中可能有多個img
元素。 A NodeList
本質上是一組元素。
jQuery中:
$("img").each(function(){
if($(this).hasClass("className")){
}
});
你需要執行這個當DOM加載 – Joren
'document.getElementsByTagName'返回對象的數組!不是一個對象。 – mehdi
我應該指定我爲這個問題的目的選擇了一個帶圖像的元素[1]。 – aoa