我有这样的事情:
td = '<td id = "someId"> Text <input type = "text" name = "someName" value = "someValue" onchange="textChange(' + "someId" + ')"></td>';
var tag = document.createElement("tr");
tag.innerHTML = td;
document.getElementById("mainTable").appendChild(tag);
但是那部分:
"textChange(' + "someId" + ')"
是错误的,因为如果我想这样引用:
document.getElementById("someId").name
这是未定义的。
我该怎么做?
答案 0 :(得分:2)
那是因为你的td
'someId'没有属性名称。
它来自您的input text
。
答案 1 :(得分:2)
很难给你实际的代码,因为你没有给我们实际的代码,但你可能正在寻找像onchange="textChange(this.parentNode.getAttribute('id'))"
话虽这么说,但这不是处理DOM操作的最佳方法。您是否考虑过调查jQuery等JavaScript框架?这些框架使得这样繁琐的任务变得非常简单。 jQuery语法类似于$(this).parent().attr('id')