日期:2014-05-17  浏览次数:20661 次

求一段JS代码
功能是这样的,有一个表格,有很多行,现在要实现当单击某一行的任意一个单元格时,则最前面的单元格里的复选框被选中,再单击一下取消选中,而且也可以直接点击那个复选框来控制选中与取消<body>
<script language="javascript" type="text/javascript">  
function chkSelect(){
 var tr = event.srcElement.parentElement; //获取当前操作对象的父级对象
 tr.cells[0].children[0].checked=true; //选中父对象的第一个元素-即复选框

</script>
<table width="285" border="1">
  <tr onclick='chkSelect();'>
  <td><input type="checkbox" name="checkbox" value="checkbox">
  </td>
  <td>第一行第一列</td>
  <td>第一行第二列</td>
  </tr>
  <tr onclick='chkSelect();'>
  <td><input type="checkbox" name="checkbox2" value="checkbox"></td>
  <td>第二行第一列</td>
  <td>第二行第二列</td>
  </tr>
</table></body>
这段JS有缺陷,选中后是能选中 但当单击复选框按钮取消选中时会出现问题 求大神解答


------解决方案--------------------
学习一下,说不定以后会用到呢。
LZ解决了就把解决方法放上来哦
------解决方案--------------------
function chkSelect(){
if (event.srcElement.tagName == "TR") {
var tr = event.srcElement.parentElement; //获取当前操作对象的父级对象
if (tr.cells[0].children[0].checked) 
tr.cells[0].children[0].checked=false; //选中父对象的第一个元素-即复选框
else
tr.cells[0].children[0].checked=true; 
} else if (event.srcElement.tagName == "TD") {
var tr = event.srcElement.parentElement; //获取当前操作对象的父级对象
if (tr.cells[0].children[0].checked) 
tr.cells[0].children[0].checked=false; //选中父对象的第一个元素-即复选框
else
tr.cells[0].children[0].checked=true; 
}else if (event.srcElement.name.indexOf('checkbox', 1) > 0) {
var obj = event.srcElement; //获取当前操作对象的父级对象
if (obj.checked)
obj.checked=false; //选中父对象的第一个元素-即复选框
else
obj.checked=true; 

 
}

------解决方案--------------------
为什么我IE8 用6楼的方法直接点复选框不起作用呢