JQUery:从.map查询中筛选选择元素

时间:2011-06-01 16:40:43

标签: jquery arrays forms html

我确信这已在这里得到解答,但我只是不知道如何说出这个问题。我使用以下方法获取表单的所有元素:

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

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

然后将它们存储在javascript对象中。问题是select和textarea元素没有类型,因此它们显示为未定义。有没有办法使用:input“)。map函数来过滤它们,还是我必须要这样:

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

由于

1 个答案:

答案 0 :(得分:1)

如果返回的elementTypeundefined,您可以尝试获取tagName属性(普通Javascript HTMLElement属性),该属性将返回标记本身的名称(如selecttextarea等。)

所以你可以这样做:

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

jsFiddle Demo