仿照你的思路,做了一个,你的方法没问题!可能你的json数据格式有问题<!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>
  <script>
   function insert2table(){ 
//eval("var children="+data); 
 var children = [
{"id":1, "name":"111"},
{"id":2, "name":"222"},
{"id":3, "name":"333"}
  ]; var tableTemp=document.getElementById("tableTemp");

for(j=0;j <children.length;j++){ 
child = children[j]; 
var trTemp = tableTemp.insertRow(); 
trTemp.className="tr2"; 
var str = " <input type='checkbox' name='mycheck' value='"+child.name+"'>"; 
trTemp.insertCell().innerHTML=str; 
trTemp.insertCell().innerHTML=child.id; 
trTemp.insertCell().innerHTML=child.name; 
trTemp.attachEvent('onmouseover',c1); 
trTemp.attachEvent('onmouseout',c2); 
trTemp.attachEvent('onclick',function(){var t=name;sel(t);}); 

}function c1(){ 
var t=event.srcElement.parentElement; 
t.style.backgroundColor="#dedede"; 

function c2(){ 
var t=event.srcElement.parentElement; 
t.style.backgroundColor=""; 

function sel(tt){ 
alert(tt); 

  </script>  <input type="button" value="test" onclick="insert2table()" />
  <table id="tableTemp"><tr style="width:100px;height:30px;background:yellow"><td>123</td></tr></table>
 </BODY>
</HTML>

解决方案 »

  1.   


    ...
    trTemp.attachEvent('onclick',function(){var t=name;sel(t);});
    ...var t=name;中的name那里定义的?
      

  2.   


    ...
    trTemp.attachEvent('onclick',new Function("sel("+eval(child.name)+");")); 
    ...试试这个.
      

  3.   


    trTemp.attachEvent('onclick',function(){var t=name;sel(t);});--->(function(t){
    trTemp.attachEvent('onclick',function(){sel(t)}) 
    })(child.name)
      

  4.   

    借用jol_boy的代码:<!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>
      <script>
       function insert2table(){ 
        //eval("var children="+data); 
     var children = [
                    {"id":1, "name":"111"},
                    {"id":2, "name":"222"},
                    {"id":3, "name":"333"}
                  ];    var tableTemp=document.getElementById("tableTemp");
        
        for(j=0;j <children.length;j++){ 
            child = children[j]; 
            var trTemp = tableTemp.insertRow(); 
            trTemp.className="tr2"; 
            var str = " <input type='checkbox' name='mycheck' value='"+child.name+"'>"; 
            trTemp.insertCell().innerHTML=str; 
            trTemp.insertCell().innerHTML=child.id; 
            trTemp.insertCell().innerHTML=child.name; 
            trTemp.attachEvent('onmouseover',c1); 
            trTemp.attachEvent('onmouseout',c2);
    //trTemp.attachEvent('onclick',function(){var t=name;sel(t);});
    (function(t){
    trTemp.attachEvent('onclick',function(){sel(t)}) 
    })(child.name)    } 
    }function c1(){ 
    var t=event.srcElement.parentElement; 
    t.style.backgroundColor="#dedede"; 

    function c2(){ 
    var t=event.srcElement.parentElement; 
    t.style.backgroundColor=""; 
    } function sel(tt){ 
    alert(tt); 

      </script>  <input type="button" value="test" onclick="insert2table()" />
      <table id="tableTemp"><tr style="width:100px;height:30px;background:yellow"><td>123</td></tr></table>
     </BODY>
    </HTML>
      

  5.   

    (function(t){
        trTemp.attachEvent('onclick',function(){sel(t)}) 
    })(child.name)
      

  6.   

    非常感谢大家提供的方法。caiying2009的方法可以。
      

  7.   

    <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>
      <script>
       function insert2table(){ 
        //eval("var children="+data); 
     var children = [
                    {"id":1, "name":"111"},
                    {"id":2, "name":"222"},
                    {"id":3, "name":"333"}
                  ];    var tableTemp=document.getElementById("tableTemp");
        
        for(j=0;j <children.length;j++){ 
            child = children[j]; 
            var trTemp = tableTemp.insertRow(); 
            trTemp.className="tr2"; 
            var str = " <input type='checkbox' name='mycheck' value='"+child.name+"'>"; 
            trTemp.insertCell().innerHTML=str; 
            trTemp.insertCell().innerHTML=child.id; 
            trTemp.insertCell().innerHTML=child.name; 
            trTemp.attachEvent('onmouseover',c1); 
            trTemp.attachEvent('onmouseout',c2);
    //trTemp.attachEvent('onclick',function(){var t=name;sel(t);});
    (function(t){
        trTemp.attachEvent('onclick',function(){sel(t)}) 
    })(child.name)    } 
    }function c1(){ 
    var t=event.srcElement.parentElement; 
    t.style.backgroundColor="#dedede"; 

    function c2(){ 
    var t=event.srcElement.parentElement; 
    t.style.backgroundColor=""; 
    } function sel(tt){ 
    alert(tt); 

      </script>  <input type="button" value="test" onclick="insert2table()" />
      <table id="tableTemp"><tr style="width:100px;height:30px;background:yellow"><td>123</td></tr></table>
     </BODY>
    </HTML>这个方法可以啊