单击<tr>的某个td 将td中的innerHTML改为<span><input onblur=""/></span> input调用不了事件



/******
上面的是用c:each循环出来的,想点击行的某个列 将某个列改为<span><input name="vouchQty${s.count}" id="vouchQty${s.count}" onblur="addQuantity();" /></span>  我描述的不清楚 但想一定有好心人帮忙!
*****/

/*
这个是js 我想动态给input加事件  可是我传过去的值是alert("object:"+checkQty); 弹出一看是下面的图
*/

大哥们 给个意见… 帮个忙!谢谢…

从截图看出,你的程序是在IE下进行测试的
在你目前的代码上有两种方式可以获得值:
[code="html"]

window.onload = function() { var row = document.getElementById("tr_0"); editRow(row); } function editRow(trObj) { for(var i = 0; i < trObj.cells.length; i++) { trObj.cells[i].onclick = function () { this.innerHTML = "<input type='text' id='checkQty" + i + "' value='"+ this.innerText + "' />"; document.getElementById('checkQty' + i).focus(); document.getElementById('checkQty' + i).onblur = function() { editCellOnBlur(this.value); } //方式一 }; } } function editCellOnBlur(obj) { alert(obj); alert(event.srcElement.value); //在你原来的代码上,直接使用event对象 }

12


[/code]

注意:attachEvent方法,是IE的独有的,event对象各浏览器下的实现不一样,不能做到浏览器兼容。

所以还是推荐用一些框架来完成,即可以实现对大部分浏览器的兼容,也能方便的实现功能。例如:jquery

td没有那个属性吧..
你在td中加DIV试试
div绝对可以用innerHTML替换。 :)