2012-05-04 102 views
0

如何通過JavaScript DOM將元素ID應用於新創建的元素?JavaScript/DOM - 給新創建的元素添加ID

我寫的代碼創建了一個由按鈕觸發的表。

我需要爲此表應用一個唯一的ID,因此它可以與我的網站上出現的其他人的樣式不同。

這裏是我的代碼示例:

var tab = document.createElement("ViewShoppingCart"); 
document.getElementById("shopping_list").appendChild(tab); 

var tbdy = document.createElement("tbody"); 
tab.id = "new_cart"; 
tab.appendChild(tbdy); 
new_cart = true; 

var total = 0; 

for (var a = 0; a <= nameArray.length-1; a++) { 

var tr = document.createElement("tr"); 
tbdy.appendChild(tr); 

var td = document.createElement("td"); 
    td.appendChild(document.createTextNode("x " + quantityArray[a])); 
    tr.appendChild(td); 

var td2 = document.createElement("td"); 
    td2.appendChild(document.createTextNode(nameArray[a])); 
    tr.appendChild(td2); 

var td3 = document.createElement("td"); 
    td3.appendChild(document.createTextNode(sumArray[a])); 
    tr.appendChild(td3); 

} 
+0

'tab.id =「cart」+(new Date).getTime()'? –

回答

0

嘗試

var tbdy = document.createElement("tbody"); 
tbdy.id = "newtbodyid"; 
tab.id = "new_cart"; 
tab.appendChild(tbdy); 
new_cart = true; 
+0

我需要整個表的唯一ID –

+0

我編輯了我的答案,我假設'tbdy'是你的表,所以只需在定義var後輸入'tbdy.id =「newtbodyid」;'。 –

+0

如果你的動態生成的'table'超出了代碼範圍,你可以嘗試爲它定義id,如上所示或者通過document.getElementById('tableID')。setAttribute('id','newid') ;'。請注意,後者可能無法在IE中很好地工作,如果這是一個問題。 –

0

可將樣式考慮使用類選擇,你可能根本不需要標識。

請注意,如果您想創建有效的HTML,則不能有明顯減少CSS樣式值的重複ID,特別是對於表格數據。

相關問題