我已动态呈现HTML,其中列出了数量不确定的单选按钮,其名称代表数据库中的某些ID。
我需要收集无线电的所有唯一名称。
以下是一个例子:
<input name="721" type="radio" value="A" />
<input name="721" type="radio" value="I" />
<input name="722" type="radio" value="A" />
<input name="722" type="radio" value="I" />
<input name="723" type="radio" value="A" />
<input name="723" type="radio" value="I" />
不需要检查无线电,因此使用选定或选中的属性将不起作用。
有没有一种优雅的方法可以使用jQuery获取无线电的所有独特名称? 我知道我可以遍历每个无线电,但我希望jQuery有更优雅的方式来做这个吗?
答案 0 :(得分:6)
<强> jsBin demo 强>
var arr = [];
$.each( $('input:radio'), function(){
var myname= this.name;
if( $.inArray( myname, arr ) < 0 ){
arr.push(myname);
}
});
alert(arr); // 721,722,723
答案 1 :(得分:1)
var names = $('input[type=radio]').map(function() {
return this.name
}).get(); // create an array of names
var unique = $.grep(names, function(v, i) {
return $.inArray(v, names) === i
}); // filter unique values
答案 2 :(得分:0)
$('input:radio').each(function(){
// do something
});
答案 3 :(得分:0)
仅供参考 - 您发布的HTML没有唯一的名称。每个都有两个......但这就是你如何得到它们的:
$('input[type="radio"]').each(function() {
alert($(this).attr('name'));
});
答案 4 :(得分:0)
如果您想在每个print those names
之前radio
,请使用它:
$('input[type="radio"]').each(function() {
$(this).before($(this).attr('name'));
});
答案 5 :(得分:0)
要获取唯一名称,您可以使用map()构建所有名称的数组,然后将$.grep()与$.inArray()结合使用以删除重复名称。
类似的东西:
var allNames = $("input[type=radio]").map(function() {
return $(this).attr("name");
}).get();
var uniqueNames = $.grep(allNames, function(name, index) {
return $.inArray(name, allNames) == index;
});
答案 6 :(得分:0)
尝试循环获取所有名称并将其存储在数组中...然后使用过滤方法可以过滤唯一值....
让我们说,
var array=[your array values];
var unique_val = array.filter(function(value,iter,array){
return iter == array.indexOf(value);
});
这可能有用......
答案 7 :(得分:-1)
我觉得你们这么快就喜欢jQuery,呵呵。 如果有2个单选按钮,这可能对你有帮助, http://jsfiddle.net/BTcrR/检查一下
$(function() {
// list of
var rediobuttonsName = new Array();
// you can use :odd | :even
$('input[type="radio"]').not(':odd').map(function(n, elem) {
rediobuttonsName.push(elem.name);
// or you can use the context of object this
// this.name
});
alert(rediobuttonsName);
});
或者你可以骑.not(“:odd”)并检查数组是否有名称的值。 ;)