javascript - 动态添加的类适用于 <td> 但不适用于 <tire>。为什么?

标签 javascript class dynamic

当函数被调用时,该函数只是将新行注入(inject)到一个空表中。

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

这是为什么?我读过有关脚本执行的所谓异步性的信息,但肯定不是这种情况,它会破坏目的,不是吗?

最佳答案

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

newRow2.className = "hiddenRow";

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

newName.className = classNames[data];

关于javascript - 动态添加的类适用于 <td> 但不适用于 <tire>。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8019481/

相关文章:

javascript - 如何在JavaScript中获取计算机的主目录路径?

javascript - 如何在 JSPDF 中编辑 TextField() 的字体大小?

javascript - 我们如何跟踪 Javascript 错误?现有的工具真的有用吗?

c++ - 用未知长度的列填充 vector

swift - <>(尖括号)对 swift 中的类名有什么作用?

c++ - 类局部特化继承方法

C# 反射 : How do I initialize a field created dynamically in TypeBuilder?

r - 添加或删除输入后保留 UI 文本输入

javascript - Ionic 2从ts文件引用html文件中的值?

c++ - 不使用 vector 的动态字符串数组