[英]JavaScript: can an input type=checkbox use appendChild in IE8 or not?
根据http://msdn.microsoft.com/en-us/library/ms535934(v=VS.85).aspx和http://msdn.microsoft.com/en-us/library/ms535262(v=VS .85).aspx ,我应该能够执行以下操作来创建一个新的复选框:
var answer = document.createElement('input');
answer.setAttribute('type', 'checkbox');
answer.setAttribute('id', 'answer');
answer.setAttribute('value', 'a');
answer.appendChild(document.createTextNode('test'));
这适用于Firefox和Chrome,但在IE 8中,最后一次函数调用会产生以下错误消息:
Error: Unexpected call to method or property access.
我试过通过使用innerText属性来绕过这个,但是这种方法会收到相同的错误消息。
难道我做错了什么? 如果是这样,什么? 如果没有,我怎么能规避看似无稽之谈?
我认为您不想在复选框中添加文本节点。 相反,我会使用带有两个子节点的标签对象:复选框输入和文本节点:
var answer = document.createElement('input');
answer.setAttribute('type', 'checkbox');
answer.setAttribute('id', 'answer');
answer.setAttribute('value', 'a');
var answerLabel = document.createElement('label');
answerLabel.setAttribute('for','answer'); // this corresponds to the checkbox id
answerLabel.appendChild(answer);
answerLabel.appendChild(document.createTextNode(' test'));
document.body.appendChild(answerLabel);
您可以使用:
var label = document.createElement('label');
label.answer;
label.appendChild(document.createTextNode('test'));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.