2008-09-09 32 views
1

我認爲這是特定於IE 6.0,但...如何添加一個div,並把它撿起來以後

在JavaScript中我添加一個div到DOM。我分配了一個id屬性。當我後來嘗試拿起divid我所得到的全部是null

有什麼建議嗎?

例子:

var newDiv = document.createElement("DIV"); 
newDiv.setAttribute("ID", "obj_1000"); 
document.appendChild(newDiv); 

alert("Added:" + newDiv.getAttribute("ID") + ":" + newDiv.id + ":" + document.getElementById("obj_1000")); 

警報打印"::null"

似乎在Firefox 2.0+

回答

7

除了其他答案的建議(您需要實際將元素插入到DOM中以便通過getElementById()找到該元素)之外,還需要使用小寫屬性名稱才能識別IE6它作爲id

var newDiv = document.createElement("DIV"); 
newDiv.setAttribute("id", "obj_1000"); 
document.body.appendChild(newDiv); 

alert("Added:" 
    + newDiv.getAttribute("id") 
    + ":" + newDiv.id + ":" 
    + document.getElementById("obj_1000")); 

...作出響應,預期:

Added:obj_1000:obj_1000:[object] 

按照MSDN documentationsetAttribute(),直到IE8有一個可選的第三個參數控制是否區分屬性名稱。猜猜默認是什麼......

1

做工精細你必須到div添加到DOM。

// Create the Div 
var oDiv = document.createElement('div'); 
document.body.appendChild(oDiv); 
3

該div需要被添加到一個元素,使其成爲文檔的一部分。

document.appendChild(newDiv); 

alert(document.getElementById("obj_1000")); 
0

newDiv.setAttribute(「ID」,「obj_1000」);

應該是

newDiv.id =「obj_1000」;

0

哼,感謝您把我放在正確的軌道上球員......這很奇怪,但事實證明,如果我將案件更改爲小寫,一切開始工作就好了.. 。

最終結果了:

var newDiv = document.createElement("DIV"); 
newDiv.setAttribute("id", "obj_1000"); 
document.appendChild(newDiv); 

alert("Added:" + 
     newDiv.getAttribute("id") + ":" + 
     newDiv.id + ":" + 
     document.getElementById("obj_1000")); 

ODD ......很奇怪

+1

很奇怪?不,很IE。 – 2008-09-09 20:26:11

相關問題