2010-07-09 58 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

相關問題