如果一行里面只有一个input对象的话~~
可以直接用
trObj.getElementsByTagName("input")[0];取得那个checkbox对象的引用如果还有别的input对象就再过滤以下type属性就可以了~~
可以直接用
trObj.getElementsByTagName("input")[0];取得那个checkbox对象的引用如果还有别的input对象就再过滤以下type属性就可以了~~
{
this.cells[0].childNodes[0].checked = true;//如果checkbox放在第一列
}
{
this.cells[0].childNodes[0].checked = true;//如果checkbox放在第一列
}
checkbox 添加ID
document.getElementsByName("objID");或者
checkbox 添加那name
checkboxList = document.getElementsByName("objName");
然后遍历或者
checkboxList = trObj.childNodes
然后遍历
//参数:cName为checkBox的名字function test(mytr,cName){
if(documetn.getElementById("cName").checked){
alert("ID为:"+mytr.id+"的行,也被选中");
}else{
alert("ID为:"+mytr.id+"的行,已取消选中");
}
}
he_8134 你说的情况太简单了
CutBug 你属于回帖不看的而且也只考虑了没有更深的嵌套的情况songpengasp根lcb530 两位老兄的思路我也考虑过,可惜原来的页面太tm乱了我实在没法通过id或name给tr跟checkbox建立对应关系。另外,我的确是要用这个function作为tr的onclick事件响应代码的,不过不是直接写的,而是在末尾用脚本循环加的,方法只写了一遍。所以不能每次调用他是传入不同的checkbox_id/checkbox_name来定位要修改哪个checkbox
谢谢大家了,回帖都给分,解决后另开帖给解答者40分
<html>
<head>
</head>
<body onload="addTrEvent()">
<table id="tbl" width="50%" border=1>
<tr>
<td width="20px"><input type="checkbox" name="chk" id="chk1"</td>
<td>11</td>
<td>12</td>
</tr>
<tr>
<td><input type="checkbox" name="chk" id="chk2"</td>
<td>21</td>
<td>22</td>
</tr>
<tr>
<td><input type="checkbox" name="chk" id="chk3"</td>
<td>31</td>
<td>32</td>
</tr>
</table>
</body>
</html><script language="javascript" type="text/javascript">
function addTrEvent()
{
var table = document.getElementById("tbl");
for(var i=0;i<table.rows.length;i++)
{
table.rows[i].onclick = new Function("trFunc(this,this.cells[0].childNodes[0])")
}
}function trFunc(tr,chkBox)
{
alert(tr.outerHTML);
alert(chkBox.id)
}
</script>
<html>
<head>
</head>
<body onload="addTrEvent()">
<table id="tbl" width="50%" border=1>
<tr>
<td width="20px"><input type="checkbox" name="chk" id="chk1" /></td>
<td>11</td>
<td>12</td>
</tr>
<tr>
<!--checkbox加了一层嵌套-->
<td><span><input type="checkbox" name="chk" id="chk2" /></span></td>
<td>21</td>
<td>22</td>
</tr>
<tr>
<td><input type="checkbox" name="chk" id="chk3" /></td>
<td>31</td>
<td>32</td>
</tr>
</table>
</body>
</html><script language="javascript" type="text/javascript">
function addTrEvent()
{
var table = document.getElementById("tbl");
for(var i=0;i<table.rows.length;i++)
{
table.rows[i].onclick = new Function("trFunc(this)")
}
}function trFunc(tr)
{
alert(tr.outerHTML); //tr对象
for(var j=0;j<tr.cells.length;j++)
{
getCheckBox(tr.cells[j]);
}
}
function getCheckBox(cell)
{
for(var k=0;k<cell.childNodes.length;k++)
{
if(cell.childNodes[k].nodeType==1)
{
if(cell.childNodes[k].type=="checkbox")
{
alert(cell.childNodes[k].id);//这里取得checkbox
break;
}
if(cell.childNodes[k].childNodes.length!=0) //如果有子节点,递规遍历子节点
{
getCheckBox(cell.childNodes[k]);
}
}
}
}</script>
CutBug 的可以用,不过你没考虑没有checkbox的行,应该会抱错吧,我测了再说。给分
http://topic.csdn.net/u/20071026/10/89d7452d-bca4-4505-bcfb-bcbcd7e07d23.html