为什么appendChild仅在删除docType时才起作用

时间:2010-07-09 03:30:44

标签: javascript popup doctype appendchild

当我提出任何类型的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的字符串文字或值

1 个答案:

答案 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适合使用您指定的语法轻松创建元素。