2012-07-12 28 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/