表格里tr上有checkbox,checkbox上有onclick带参数的事件。现在的问题是通过脚本得到该checkbox上的onclick事件后如何给到tr的onclick上?(不能直接在tr上写onclick)高手帮忙啊?!现在已经获取到checkbox上的onclick事件了,alert的话可以看到是正确的,但是脚本里就是不执行?下面代码是个简单的例子:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb18030" />
<title>Untitled Document</title>
<script type="text/javascript" language="javascript">
function chkonclick(o)
{
var tt=o.getElementsByTagName("input");
for(var i=0;i<tt.length;i++)
{
if(tt[i].type=="checkbox")
        {
var ocka=tt[i].onclick;
            ocka+="";
            var str=ocka.substring(23,ocka.length-1);
            if(ocka.indexOf("abc")=="23")
            {
            alert(str); //可以得到正确的方法
str; //这样为什么不行呢?该怎么办才可以?
abc("这是测试的^_^"); //如果直接把方法写在这里就可以。
            }
}
}
}function onctr(o)
{
var t=document.getElementById(o).getElementsByTagName("tr");
for(var i=0;i<t.length;i++)
{
   t[i].onclick=function()
   {
chkonclick(this);
}
}
}
function abc(str)

alert(str);
}
</script>
</head><body><table width="90%" border="1" cellspacing="1" cellpadding="1" id="datatable">
  <tr>
    <td><input type="checkbox" onclick="abc(0)" value="0" /></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td><input type="checkbox" onclick="abc(1)" value="1" /></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
<script language="javascript" type="text/javascript">
onctr("datatable");
</script>
</body>
</html>

解决方案 »

  1.   

    <html>
    <body><table width="90%" border="1" cellspacing="1" cellpadding="1" id="datatable">
      <tr>
        <td><input type="checkbox" onclick="alert(0)" value="0" /></td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><input type="checkbox" onclick="alert(1)" value="1" /></td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
    </table>
    <script language="javascript" type="text/javascript">
    var checkboxs = document.getElementsByTagName('input');
    for(var i=0; i<checkboxs.length; i++){
    if(checkboxs[i].type=="checkbox"){
    checkboxs[i].parentNode.parentNode.onclick = checkboxs[i].onclick ;
    }
    }
    </script>
    </body>
    </html>
      

  2.   

    应该把str写成一个方法再调用str()
      

  3.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb18030" />
    <title>Untitled Document</title>
    <script type="text/javascript" language="javascript">
    function chkonclick(o)
    {
        var tt=o.getElementsByTagName("input");
        for(var i=0;i<tt.length;i++)
        {
            if(tt[i].type=="checkbox")
            {
    tt[i].onclick();
            }
        }
    }function onctr(o)
    {
        var t=document.getElementById(o).getElementsByTagName("tr");
        for(var i=0;i<t.length;i++)
        {
              t[i].onclick=function()
              {
                chkonclick(this);
            }
        }
    }
    function abc(str)

        alert(str);
    }
    </script>
    </head><body><table width="90%" border="1" cellspacing="1" cellpadding="1" id="datatable">
      <tr>
        <td><input type="checkbox" onclick="abc(0)" value="0" /></td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><input type="checkbox" onclick="abc(1)" value="1" /></td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
    </table>
    <script language="javascript" type="text/javascript">
    onctr("datatable");
    </script>
    </body>
    </html>