每个人下午好 - 我有一个(可能)简单化的问题,在搜索得相当彻底之后我似乎无法找到答案。我在chrome中遇到的错误是“Uncaught TypeError:无法读取null的属性'值'。”在第120行(复制如下):
mercedes_txt = mercedes_txt + "<tr><td><button id=\"Mercedes Add Value\"
onclick=\"addAttribute('Merceds-Benz', " + mercedes_counter + ", '" +
document.getElementById('Mercedes-Benz Text').value + "')\">Add</button></td><td>
<input type=\"text\" name=\"Mercedes-Benz Text\" id=\"Mercedes-Benz Text\" />
</td></tr></table>";
为了便于阅读,我尝试将代码分成多行。如果我取出“onclick”代码正确执行。另外,如果我替换
'" + document.getElementById ('Mercedes-Benz Text').value + "'
使用'someValue',代码正确执行。所以问题必须是我从一个动态创建的对象请求值(它还不存在,但是一旦代码在innerHTML调用中应用)。对不起,我是新手,但感谢大家的帮助。
答案 0 :(得分:2)
我看到两个错误:
尝试为元素使用无效ID。有关ID命名规则,请参阅What are valid values for the id attribute in HTML?。
您正在尝试获取尚未添加到DOM的元素的值。
我建议删除内联onclick
处理程序,并按代码添加。像这样:
var addValueButton = document.getElementById('MercedesAddValue');
addValueButton.addEventListener('click', function(e) {
// get live form values here by traversing the DOM
// you may want to use jQuery...
});