2010-07-09 90 views
0

当我把任何种类的文档类型声明如<!DOCTYPE html >,appendChild不起作用....为什么?为什么appendChild只在我删除docType时才起作用

<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绑定到DOM的值。数据()

回答

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有利于使用指定的语法很容易地创建元素。

+0

'myElement.style'是每个CSS属性都有单独属性的对象,而不是一个字符串。依次分配每个属性将适用于所有浏览器:'myElement.style.width =“600px”; myElement.style.height =“200px”; myElement.style.backgroundColor =“blue”;' – 2010-07-09 08:38:42

+0

嗯,谢谢 - 更新。 – harto 2010-07-11 06:37:33

相关问题