动态添加的类可以工作但不能工作。为什么?

时间:2011-11-05 10:08:18

标签: javascript class dynamic

该函数只是在调用函数时将新行注入空表。

似乎自<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中它们没有类。

这是为什么?我已经读到了脚本执行所谓的异步性,但肯定不是这样,它会打败目的,不是吗?

2 个答案:

答案 0 :(得分:3)

DOM元素没有属性class,因为它是保留关键字。您正在寻找className

newRow2.className = "hiddenRow";

单元格(newData)相同。它适用于您的其他单元格,因为您已使用className

newName.className = classNames[data];

答案 1 :(得分:1)

仅使用 className ,而不是<TR>中没有类属性。