2011-06-01 88 views
0

我確定這裏已經回答了這個問題,但我不知道如何提出問題。我得到一個表格的所有元素使用:JQUery:從.map查詢過濾select元素

//get all form elements 
$("#" + thisForm + " :input").map(function() { 

//get element data 
var elementName = $(this).attr('name'); 
var elementType = $(this).attr('type'); 

然後將它們存儲在一個javascript對象中。問題是select和textarea元素沒有類型,所以它們顯示爲undefined。有沒有一種方法來使用他們篩選:輸入「)映射功能或做我必須去是這樣的:

$(thisForm + " > fieldset > select").add(thisForm + " > fieldset > textarea").each(function() { 
    // do stuff 
}); 

感謝

+1

我不確定你想在這裏實現什麼。 – kapa 2011-06-01 16:44:38

+0

我得到了表單中的所有元素。然後,我正在尋找按類型排列這些元素(無線電,複選框,選擇)。然而,select和textarea沒有type屬性,所以我現在正在做它的方式返回elementType爲undefined。當我繪製所有元素時,我如何確定它的類型? – PruitIgoe 2011-06-01 17:10:40

回答

1

如果返回elementTypeundefined,你可以試試得到tagName財產(普通的JavaScript HTMLElement屬性)將返回標籤本身的名稱(如selecttextarea等)

所以,你可以這樣做:

var elementType = $(this).attr('type'); 
if (typeof elementType == 'undefined') { 
    elementType=this.tagName.toLowerCase(); 
} 

jsFiddle Demo

+0

這就是我所需要的,謝謝。正在購買$(this).tag,而不是tagName ... – PruitIgoe 2011-06-01 17:26:34