假设我有一个包含多个输入的表单,我使用一个非常标准的jQuery语句来获取它们:
var inputs = $("#some-form").find("input")
现在,我想对这些输入采取行动,但是我想说我想将单选按钮和/或复选框组视为一件事。如何将inputs
拆分为按属性分组的元素,例如name
。请注意,我不知道处理开始时名称是什么。
从人的角度来说,我需要逻辑确实做一些事情:
让我迭代输入列表。对于每个输入,让我检查一下 看它是否已经添加到占位符数组中。如果是这样, 不要管它。如果没有,请添加它和所有名称的名称 占位符数组(作为子数组)。
基本上,我喜欢这样的东西:
[[<input type="text" name="name1">], [<input type="radio" name="name2">,<input type="radio" name="name2">]]
答案 0 :(得分:2)
尝试在过滤器中使用属性选择器。
var $formInput = $('#some-form').find('input');
var inputText = $formInput.filter('[type=text]')
var otherInput = $formInput.filter("[type=radio]")
.add($formInput.filter('[type=checkbox]'));
甚至更好
var otherInput = $formInput.filter(function () {
return this.type == 'radio' || this.type == 'checkbox';
});
DEMO: http://jsfiddle.net/utwaf/
如何将输入拆分为按属性分组的元素,比如名称
var elements = []; //elements by name
var $formInput = $('#some-form').find('input');
elements.push($formInput.filter(function() {
return this.name == 'name1';
});
elements.push($formInput.filter(function() {
return this.name == 'name2';
});
注意:推入数组的所有元素都是jQuery对象。