当我提出任何类型的doctype声明时,如<!DOCTYPE html >
,appendChild不起作用....为什么?
<form>
<script language="javascript">
function function2() {
var myElement = document.createElement('<div style="width:600; height:200;background-color:blue;">www.java2s.com</div>');
document.forms[0].appendChild(myElement);
}
</script>
<button onclick="function2();"></button>
</form>
我正试图从弹出窗口的父开启者那里获取数据......这可能吗?数据可以是使用jQuery .data()
绑定到DOM的字符串文字或值答案 0 :(得分:1)
如果您在IE中遇到此问题,可能是因为存在DOCTYPE声明会强制浏览器进入“标准兼容”模式。这可能导致不符合预期标准的代码中断。
在您的情况下,可能是因为document.createElement
不接受HTML片段 - 它接受一个元素名称,例如document.createElement('div')
。
尝试用以下内容替换你的函数体:
var myElement = document.createElement('div');
myElement.style.width = '600px';
myElement.style.height = '200px';
myElement.style.backgroundColor = 'blue';
myElement.appendChild(document.createTextNode('www.java2s.com'));
document.forms[0].appendChild(myElement);
在此处阅读文档对象模型:https://developer.mozilla.org/en/DOM
此外,jQuery适合使用您指定的语法轻松创建元素。