2012-07-12 26 views

回答

1

试试这个:

var arrx=new Array(); 
arrx[0]=4;  
arrx[1]=5; 
arrx[2]=3; 
arrx[3]=1; 
for (var i = 0; i < arrx.length; i++) { 
    document.getElementsByName('cal')[arrx[i]].checked = true; 
} 
​ 

没有jQuery的需要! jsFiddle example

+0

更好地使用'.setAttribute( '检查',真)',而不是使用'.checked = TRUE' – Amit 2012-07-12 19:46:30

+0

@Amit - 为什么......? – j08691 2012-07-12 19:47:54

+1

@ j08691 DOM对象有一个抽象层,它基本上用来隐藏内部。使用'.checked'您使用的是未来可能会更改的公开值。然而,这里的setter和抽象层是允许浏览器在未破坏代码的情况下改进/改变对象的。 – Amit 2012-07-12 20:16:46

1
var arrx=new Array(); 
arrx[0]=4;  
arrx[1]=5; 
arrx[2]=3; 
arrx[3]=1; 

var calArray = document.getElementsByName("cal"); 
for (var i = 0; i < arrx.length; i++) { 
    calArray[arrx[i]].checked = true; 
} 
0

如果你坚持使用jQuery:

var arrx=new Array(); 
arrx[0]=4;  
arrx[1]=5; 
arrx[2]=3; 
arrx[3]=1; 
var i = 0; 
$('[name=cal]').each(function() { 
    if ($.inArray(i, arrx) != -1) { 
     $(this).prop('checked',true); 
    } 
    i++; 
}); 

Working example

+0

我编辑按名称获取元素... – Trufa 2012-07-12 19:55:08

0

如果你愿意使用jQuery,它可以很容易地根据输入的名字做(''name ='cal']')。(函数(i){jQuery(this).attr('checked','checked');});

如果你的目标是不一定会选择所有的人,但是,你可以使用这样的事情:

的jQuery( '[名$ = “_ C”]')每个(函数(我){ jQuery(this).attr('checked','checked');});

它只在名称末尾检查带有_c的输入。

http://jsfiddle.net/7EetA/9/