误解你的意思了,你是想在选中radio时也让行背景色改变.用这个函数替换掉原来函数. function radclick(objradio){ var objrow=event.srcElement.parentNode.parentNode; event.cancelBubble=true; resetcolor();//此函数功能为将所有行背景设置为白色 objrow.style.backgroundColor="#C8D6FB";//设置选中行背景色 alert(objradio.value); }
不好意思上面程序有些问题,用下面这个 function radclick(objradio){ var objrow=event.srcElement.parentNode.parentNode; event.cancelBubble=true; if(event.srcElement.tagName=="INPUT"){ resetcolor();//此函数功能为将所有行背景设置为白色 objrow.style.backgroundColor="#C8D6FB";//设置选中行背景色 } alert(objradio.value); }
请看代码如下<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head><body onclick="setSelectedBgColor();">
<script language="JavaScript">
<!--
var curObj= null;
function setSelectedBgColor()
{
if(window.event.srcElement.tagName=='TD')
{
if(curObj!=null) curObj.style.background='';
curObj=window.event.srcElement.parentElement;
curObj.style.background='#ffdead';
var ra = curObj.getElementsByTagName("input");
ra[0].checked = true;
}
}
//-->
</script><table width=200 border=1 style="cursor:hand">
<tr>
<td><input type="radio" name="a"></td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><input type="radio" name="a"></td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>行选中效果</title>
<script language="javascript">
function radclick(objradio){
event.cancelBubble=true;
alert(objradio.value);
}
function tabclick(){
var objrow,objrad;
if(event.srcElement.tagName=="TD"){
resetcolor();
objrow=event.srcElement.parentNode;
objrow.style.backgroundColor="#C8D6FB";
objrad=objrow.cells[0].childNodes[0];//若嵌套结构有变化此处需要调整
objrad.checked=true;
objrad.onclick();
}
}
function resetcolor(){
var objrows=document.getElementsByTagName("tr");
var i=0;
while(objrows.item(i)){
objrows.item(i).style.backgroundColor="#ffffff";
i++;
}
}
</script>
</head>
<body>
<table width="344" border="1" align="center"
cellpadding="0" cellspacing="0"
onclick="tabclick()" style="border-collapse:collapse">
<tr>
<td width="103">
<input type="radio" name="rad1" value="单选1" onclick="radclick(this)"/>
1</td>
<td width="117"> </td>
<td width="102"> </td>
</tr>
<tr>
<td><input type="radio" name="rad1" value="单选2" onclick="radclick(this)"/>
2</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><input type="radio" name="rad1" value="单选3" onclick="radclick(this)"/>
3</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><input type="radio" name="rad1" value="单选4" onclick="radclick(this)"/>
4</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><input type="radio" name="rad1" value="单选5" onclick="radclick(this)"/>
5</td>
<td> </td>
<td> </td>
</tr>
</table>
</body>
</html>
window.onload=function(){
var rows=document.getElementsByTagName("tr");
for(var i=0;i<rows.length;i++){
rows[i].onclick=check;
}
}
function check(){
var inputs=this.getElementsByTagName("input")
for(var i=0;i<inputs.length;i++){
if(inputs[i].type=="radio")inputs[i].checked=!inputs[i].checked;
}
}
</script><table width="344" border="1" style="border-collapse:collapse">
<tr><td><input type="radio" name="r" /></td></tr>
<tr><td><input type="radio" name="r"/></td></tr>
<tr><td><input type="radio" name="r"/></td></tr>
<tr><td><input type="radio" name="r"/></td></tr>
</table>
function radclick(objradio){
var objrow=event.srcElement.parentNode.parentNode;
event.cancelBubble=true;
resetcolor();//此函数功能为将所有行背景设置为白色
objrow.style.backgroundColor="#C8D6FB";//设置选中行背景色
alert(objradio.value);
}
function radclick(objradio){
var objrow=event.srcElement.parentNode.parentNode;
event.cancelBubble=true;
if(event.srcElement.tagName=="INPUT"){
resetcolor();//此函数功能为将所有行背景设置为白色
objrow.style.backgroundColor="#C8D6FB";//设置选中行背景色
}
alert(objradio.value);
}