2010-07-13 64 views
2

正確的,白癡的時刻即將到來。我已經完成了搜索,但找不到合適的解決方案。如何獲取元素的類型。 JavaScript/jQuery

我有一個jQuery選擇器選擇一個類,也許是一個ID,實際上它可以是任何東西,這個選擇器被饋送到我正在編程的函數中。

我需要能夠找出每一個匹配元素的類型,例如:

<div class="target"></div> 

將返回DIV和

<input class="target" /> 

將返回輸入,簡單吧?

那麼你會這麼想,但我似乎無法找到解決方案。

任何幫助,將不勝感激:-)

回答

4

你需要讓潛在的DOM元素和訪問tagName屬性。例如,

alert($("#target").get(0).tagName); 
// -> DIV 

要知道,瀏覽器將在大寫返回的標記名稱,因此像這樣會導致你有點悲傷:

if ($("#target").get(0).tagName == "div") { alert("DIV!"); } 
+1

就是這樣,我試圖直接在選擇器上使用'tagName',而不使用'.get(0)'。非常感謝你! :D – 2010-07-13 09:00:54

0

嘗試:

$("yourelement").is("input") 

或:

if ($(this).is('input:checkbox')) 

等....酌情

+0

感謝您的回答,我希望能夠像其他人一樣顯示元素類型,並通過以下條件運行它:-) – 2010-07-13 09:01:51

+0

不用擔心 - 只是將jquery貓:) – 2010-07-13 09:19:42

1
$.fn.tagName = function() { 
    return this.get(0).tagName; 
} 
alert($('#testElement').tagName()); 

爲了解釋多一點點,爲什麼你原來的例子沒有工作,每個()方法將總是返回原來的jQuery對象(除非jQuery對象本身改性)。要看到什麼是每個與您的代碼發生的事情,這裏是一些僞代碼,顯示了每()方法的工作原理:

這不是多麼每()真正得到實現的(由一個長鏡頭可能),但它是要顯示action()函數的返回值被忽略。

+0

謝謝你的回答! +1 – 2010-07-13 09:01:13