Jquery 仅从更多元素中获取唯一名称
我动态呈现了HTML,其中列出了数量不确定的单选按钮,这些按钮的名称表示数据库中的一些ID 我需要收集所有收音机的唯一名称 以下是一个例子:Jquery 仅从更多元素中获取唯一名称,jquery,button,css-selectors,radio,Jquery,Button,Css Selectors,Radio,我动态呈现了HTML,其中列出了数量不确定的单选按钮,这些按钮的名称表示数据库中的一些ID 我需要收集所有收音机的唯一名称 以下是一个例子: <input name="721" type="radio" value="A" /> <input name="721" type="radio" value="I" /> <input name="722" type="radio" value="A" /> <inp
<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有一种更优雅的方式来实现这一点?FYI-您发布的html没有唯一的名称。每个都有两个。。。但这就是你如何获得它们的方法:
$('input:radio').each(function(){
// do something
});
$('input[type="radio"]').each(function() {
alert($(this).attr('name'));
});
var arr = [];
$.each( $('input:radio'), function(){
var myname= this.name;
if( $.inArray( myname, arr ) < 0 ){
arr.push(myname);
}
});
alert(arr); // 721,722,723
var arr=[];
$.each($('input:radio'),function(){
var myname=this.name;
如果($.inArray(myname,arr)<0){
arr.push(我的名字);
}
});
警报(arr);//721,722,723
如果您想在每个收音机前打印这些姓名
,请使用它:
$('input[type="radio"]').each(function() {
$(this).before($(this).attr('name'));
});
试一试小提琴:
要获得唯一的名称,可以使用构建所有名称的数组,然后与组合以删除重复的名称
比如:
var allNames = $("input[type=radio]").map(function() {
return $(this).attr("name");
}).get();
var uniqueNames = $.grep(allNames, function(name, index) {
return $.inArray(name, allNames) == index;
});
只需尝试循环通过并获取所有名称并将其存储在数组中。。。然后,通过使用筛选方法,您可以筛选唯一的值
比方说
var array=[your array values];
var unique_val = array.filter(function(value,iter,array){
return iter == array.indexOf(value);
});
这可能有用…我想你们这些人都很快就爱上了jQuery,嗯。
如果有两个单选按钮,
看看这个
$(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”)并检查数组是否具有名称的值。;) 如果他需要唯一的名称,我想他可以只取value属性并将其附加到name属性。谢谢-当然这将允许我执行循环方式,但我真的在寻找一个选择器,它将为我提供所有收音机的名称。使用上面的循环是不自然的,因为我必须获得每个名称,看看它是否已经存在,然后(如果不存在)添加它。这非常接近,所以我将把它标记为答案。我不得不使用$.inArray(),因为IE8不支持arr.indexOf()。谢谢
$(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);
});