我将jQuery表单对象传递给函数。此函数应查看所有复选框并查找ID属性。
我尝试了过滤功能。但它没有看到任何输入字段。
function templateRemove(form){
selectedTemplateSizes = [];
var selectedSizesCount = 0;
form.filter(':input').each(function(i, e){
console.log($(e));
selectedTemplateSizes.push($(e).attr('id'));
});
}
但是没有任何东西被添加到数组中,并且没有任何东西被记录在控制台中。对此功能的调用如下:
templateRemove($( "#delete-selected-form" ));
我不是这样做的吗?
答案 0 :(得分:3)
这可能适合你。
将功能修改为:
function templateRemove(form){
selectedTemplateSizes = [];
var selectedSizesCount = 0;
$(form + ' :input').each(function(i, e){
var inputField = $(this);
//now you can do whatever you want to do with this input field
});
}
并将其命名为:
templateRemove( "#delete-selected-form" );
,只是将该元素的id作为字符串而不是对象本身传递,以便于理解。
答案 1 :(得分:1)
使用Find
代替Filter
..,它运行正常..
您可以这样考虑:Find
- 搜索所选项目以查找匹配的元素,而Filter
从所选项中删除不匹配的元素。
templateRemove($( "#delete-selected-form" ));
function templateRemove(form){
selectedTemplateSizes = [];
var selectedSizesCount = 0;
form.find(':input').each(function(i, e){
console.log($(e));
selectedTemplateSizes.push($(e).attr('id'));
});
}
看到这个小提琴:http://jsfiddle.net/jFIT/m9QqX/