2011-11-05 43 views
1

當函數被調用時,該函數將新行插入空表中。在​​上增加了動力增加的類,但不在<tr>上。爲什麼?

這似乎是因爲<td>類正確分配,<tr>也將被分配......但它不!

var newRow = document.createElement("tr"); 

for (data in dataArray) 
{ 
    var newName = document.createElement("td"); 

    newName.className = classNames[data]; 
    newName.innerHTML = dataArray[data]; 
    newRow.appendChild(newName); 
    counter++; 
} 
document.getElementById("capturedData").appendChild(newRow); 
var newRow2 = document.createElement("tr"); 
newRow2.class = "hiddenRow"; 

for (data in dataArray) 
{ 
    var newData = document.createElement("td"); 
    var newDataField = document.createElement("input"); 

    newDataField.type = "hidden"; 
    newDataField.name = "name" + data; 
    newDataField.value = dataArray[data]; 

    newData.class = classNames[data]; 
    newData.value = dataArray[data]; 

    newData.appendChild(newDataField);  
    newRow2.appendChild(newData); 
} 

這真的很奇怪。所有新添加的<td>元素都分配了它們的類並將它們顯示在DOM中。但<tr>元素不接受類分配,並且在DOM中它們沒有類。

這是爲什麼?我已經閱讀了腳本執行的聲稱的異步性,但肯定不會是這樣,它會打敗目的,不是嗎?

回答

3

DOM元素沒有屬性class,因爲它是保留關鍵字。您正在尋找className

newRow2.className = "hiddenRow"; 

同爲小區(newData)。它適用於您的其他細胞,因爲您已經使用className

newName.className = classNames[data]; 
+0

不知道我是如何錯過了。因爲調試器沒有標記它,我認爲它是有效的。非常感謝你! :d – WhiteRau

1

僅限使用className而不是class<TR>沒有課程。

+0

謝謝。在那裏有一個金髮的時刻... :) – WhiteRau