你试过使用.prop()
吗?
$('#ddShowBar').prop('checked', true);
http://api.jquery.com/prop/
属性与属性
属性和属性之间的区别在特定情况下可能很重要。在 jQuery 1.6 之前,.attr() 方法在检索某些属性时有时会考虑属性值,这可能会导致行为不一致。从 jQuery 1.6 开始,.prop() 方法提供了一种显式检索属性值的方法,而 .attr() 检索属性。
例如,应使用 .prop() 方法检索和设置 selectedIndex、tagName、nodeName、nodeType、ownerDocument、defaultChecked 和 defaultSelected。在 jQuery 1.6 之前,可以使用 .attr() 方法检索这些属性,但这不在 attr 的范围内。这些没有对应的属性,只是属性。
还有更多:在您的示例中,您正在生成多个ID
元素并重复 attr:您的无线电组的名称。
每个新组都需要name
与前一组不同的收音机。使用犁刀c
变量可以轻松实现:
在此示例中,第一组中的收音机将具有以下名称txtradio0
:比下一组收音机:txtradio1
等...
要保持选中的其他行无线电,您只需更改组 NAME 属性:
演示
var r = ['Pie','Bar','Line','Area','Scatter'];
var c = 0; // a group counter // set to 1 if you want
function populateWithRadio(){
var rB = "<div class='radiobuttons'>";
for(var i=0; i< r.length; i++){ // create radios
rB += "<input type='radio' class='ddShow"+ r[i] +"' name='txtradio"+ c +"' value='"+r[i]+"'/>"+ r[i] ;
}
rB += "</div></br></br>";
c++; // increase Group counter
return rB; // returns the generated HTML to append
}
$('#div1').append( populateWithRadio() );
$('#div2').append( populateWithRadio() );
$(document).on("click", '.radiobuttons input', function () {
alert( 'CLASS: '+ this.className +'\n NAME: '+ this.name );
});