日期:2014-05-16  浏览次数:20384 次

tr 加事件
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的值

------解决方案--------------------
贴出完整的代码,并且详细说明你想实现的效果
------解决方案--------------------
insertRow和insertCell不用传参吗?记得貌似得用啊
------解决方案--------------------
用委托试试吧。
------解决方案--------------------
var strId =oItem[i]["ID"] 你这么写试试,是不是你用到了全局变量的事?不行 就用闭包吧
------解决方案--------------------
理解不了楼主想要什么效果
------解决方案--------------------
没有很懂LZ的意思呢。
------解决方案--------------------
对应代码改成如下,建议去找一些闭包相关的知识看看

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"))
}