为什么这个选择器会通过每个单选按钮而只是循环,因为有不同的组? http://jsfiddle.net/nardev/3AsCm/2/
这是我测试它的方式:
<input type="radio" name="group1" />
<input type="radio" name="group1" />
<input type="radio" name="group1" />
<input type="radio" name="group2" />
<input type="radio" name="group2" />
<input type="radio" name="group2" />
JS:
$('input[name^="group"]').each(function(index){
console.log(index +": "+$(this).attr("name"));
$(".h").append(index +": "+$(this).attr("name") +"<br />");
});
答案 0 :(得分:1)
您的选择器选择名称属性以group
开头的所有输入元素,它不会过滤掉唯一名称
如果您只想打印不同的组名,那么
var group = {};
$('input[name^="group"]').each(function (index) {
var name = this.name;
if (!group[name]) {
group[name] = true;
$(".h").append(index + ": " + name + "<br />");
}
});
演示:Fiddle
答案 1 :(得分:0)
这是因为选择器要求所有名称以group开头的输入标签。 如果您只想要来自每个唯一组的输入标记,则必须更具体并包括数字(1/2)。
例如:
$('input[name="group1"]').each(function(index){
console.log(index +": "+$(this).attr("name"));
$(".h").append(index +": "+$(this).attr("name") +"<br />");
});
答案 2 :(得分:0)
答案 3 :(得分:0)
您也可以通过以下方法检测不同的组,
var xName = '';
$('input[name^="group"]').each(function (index) {
if (xName != this.name) {
xName = this.name;
$(".h").append(index + ": " + xName + "<br />");
}
});