我有一個包含數千個複選框的表單,當選中其中一個時,我想檢查它下面的所有框。 這工作:在Javascript中查找對象
<html>
<body>
<form name="myform">
<input type="checkbox" name="box1" onClick="redrawboxes(this);">1<br>
<input type="checkbox" name="box2" onClick="redrawboxes(this);">2<br>
...
</form>
</body>
</html>
<script>
function redrawboxes(obj){
//check all boxes below
var foundit=false;
for (e=0; e<document.myform.elements.length; e++){
if (foundit==false){ //search for checked obj
if(obj == document.myform.elements[e]){
foundit=true;
}
}else{ //continuing below checked box
if(obj.checked){ //are we checking or unchecking
document.myform.elements[e].checked = true;
}else{
document.myform.elements[e].checked = false;
}
}
}
}
</script>
但超過幾千箱,IE是慢得不可接受。 (Firefox工作正常。) 除了遍歷整個列表之外,是否有更好的方法來查找原始框?
我的第一個問題是你到底在做什麼與表單上的數千個複選框? :P – 2009-02-02 21:18:07
這也是我第一個想到的...... D – 2009-02-02 21:33:57
它實際上是一棵樹,有成千上萬的僱員,按部門,紀律,職位分開。我允許任何這些團體或個人選擇。在實際的樹中,它不會選中複選框下的所有內容,當它跳到樹上的某個級別時它會停止。 – 2009-02-03 03:46:42