2012-02-08 65 views
0

我有一個包含不同元素的數組。像數組包含輸入元素和選擇元素。我想檢查特定類型。我試過,但沒有奏效如何在JQuery中查找元素類型

var mandotaryElementsArray = $('.mandotary'); 

$.each(mandotaryElementsArray, function(index, element){ 

    if (element == input) { 

     var $inputElement = $(this); 
     var test1; 

    } else if (element == select) { 

     var $selectElement = $(this); 
     var test2; 

    } 

}); //end of .each() 

其實我要檢查的東西,是類似於Java的實例。在這裏我想檢查是否元素是輸入類型然後這樣做,如果元素是類型選擇然後做到這一點,如果元素是類型然後這樣做..我怎樣才能使這個檢查在這裏? 感謝

+1

確切的重複http://stackoverflow.com/questions/6114683/how-to-find-out-what-type-of-dom-element-is – 2012-02-08 06:02:05

回答

7

您可以使用該.tagName屬性(它總是返回HTML大寫):

$('.mandotary').each(function(index, element) { 
    if (element.tagName == "INPUT") { 
     // code here 
    } else if (element.tagName == "SELECT") { 
     // code here 
    } 
}); 

或者,你可以使用jQuery的.is()

$('.mandotary').each(function(index, element) { 
    var $element = $(element); 
    if ($element.is('input')) { 
     // code here 
    } else if ($element.is('select')) { 
     // code here 
    } 
}); 

更妙的很可能是讓選擇器爲您完成所有工作,只需選擇您想要進行特定操作的項目,然後按如下所示在所需的選擇器上進行操作:

$('input.mandotary').hide(); 
$('select.mandotary').show(); 
+0

完美:)。謝謝 :) – Basit 2012-02-08 06:30:58

1

只需使用.is()相匹配的標籤名稱:

if (element.is('input')) 

但最好返工的代碼,不檢查你的迴路標籤名稱。

+0

嗨,謝謝,其實在我的頁面有幾個元素我想要檢查的人。像textField,我想檢查爲空,選擇要檢查是否選擇特定值的元素,複選框,我要檢查,是否打勾等等。所以我做了什麼,我給他們每個班** mandotary **,然後在陣列。正如我上面所做的。現在如果在數組中我有文本字段是輸入元素,那麼我檢查爲空,如果它是選擇,那麼我可以檢查值等。現在你能告訴我怎樣才能更好地做這件事。正如你所說**理想的返修代碼:)**謝謝 – Basit 2012-02-08 06:13:57