2011-06-01 73 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