for ( var i = 0; i < oItem.length; i++) {
  strId =oItem[i]["ID"] 
  mytr = mytable.insertRow();
mytr.setAttribute("id", "tr" + iRowIdTemp);
mytr.setAttribute("title",strTitle);
mytr.attachEvent('onclick',  function(){selectPat(strId );});   
iRowIdTemp++;
 
               var mytdIndex1 = mytr.insertCell(); 
mytdIndex1.innerHTML = strId  
 }
function selectPat(strId )
{
alert(strId)
}oItem的值为
oItem[0]["ID"]    0
oItem[1]["ID"]    1当点击表格的行时,还管点哪一行都显示 1我想实现 点第一行是 0 第二行才是 1 也就是显示的是 oItem的值

解决方案 »

  1.   

    insertRow和insertCell不用传参吗?记得貌似得用啊
      

  2.   

    var strId =oItem[i]["ID"]   你这么写试试,是不是你用到了全局变量的事?不行 就用闭包吧
      

  3.   

    var strId =oItem[i]["ID"] 也不行
      

  4.   

    对应代码改成如下,建议去找一些闭包相关的知识看看mytr = mytable.insertRow();
    mytr.setAttribute("id", "tr" + iRowIdTemp);
    mytr.setAttribute("title",strTitle);
    mytr.setAttribute("strId",oItem[i]["ID"])
    mytr.onclick = function () {
    selectPat(this.getAttribute("strId"))
    }
      

  5.   

    这个代码就是动态插入表格的行,每一行一个人名,点这行时能弹也这个人的名称就行,我显示的行都可以,只是加事件传的参数strId 总是最后一行的值 
    chenyang37
    的方法也报错