2010-01-24 60 views
9

我有一個class ='tag'的DOM元素。使用event.target獲取類值?

我想檢查類的值是否標記,並提示消息,如果它是真的。

我寫道:

$("#thread").each(function(event) { 
     if(event.target.class == 'tag') alert('yes'); 
    }); 

,但沒有奏效。你可以用event.target.id得到id,但不能用這個代碼得到這個類? event.target後可以擁有的所有值是什麼?

回答

14

首先,event參數僅適用於事件處理程序,並且您正在使用$.each方法。

我真的不認爲你需要/需要使用$.each方法,因爲你使用的是#id選擇器,並且id應該是唯一的。

要檢查元素是否包含一個特定的類,你可以使用hasClass方法:

if ($("#thread").hasClass('tag')) { 
    //... 
} 

此外,如果你有一個DOM元素,以獲得它的類屬性,你應該className代替class訪問它,這是因爲class是一個JavaScript 未來保留字,同樣的事情發生與像for其他屬性,應htmlFor訪問...

+3

我在哪裏可以找到所有與event.target使用的屬性? – ajsie

+0

它說event.target未定義? – ajsie

1

您使用jqu每個方法都不正確。它有兩個參數,它們都不是一個事件(它會響應目標屬性)。從docs

$.each([52, 97], function(index, value) { 
    alert(index + ': ' + value); 
}); 

見CMS的答案檢查是否元素有一個給定的類名稱的正確方法。

0

你在這裏。

$("div").each(function (index, domEle) { 
    if (domEle.hasClass("tag")) { 
     console.log('yes'); 
    } else { 
     console.log('no'); 
    } 
}); 
+0

如果有東西沒有課,有沒有辦法計算小時數?這與此相反嗎? – user982853

23
if($(event.target).hasClass("tag")) 
{ 
    alert("yes"); 
} 

這將正常工作。

+0

是的確的... =) – Roylee

+2

接受的答案回答了具體的例子,但這個答案回答了這個問題 – RasTheDestroyer

+0

這應該是被接受的答案。 – respectTheCode

0

條件中只需使用:

!domEle.hasClass("tag")