1

我有一个动态添加行的表。这些行包含一个日期选择器和下拉列表,我可以使用 .className() 在日期选择器和下拉列表上设置类名,但不能在日期选择器和下拉列表上设置

var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
row.className = "row1 part";

var cell1 = row.insertCell(0);
cell1.className = "value";
var element1 = document.createElement("input");
element1.type = "text";
element1.name = "txtbox[]";
element1.className = "date-pick"; // this fails
element1.setAttribute('value', '2013/10/04');
cell1.appendChild(element1);

var cell2 = row.insertCell(1);
var element2 = document.createElement("select");
element2.name = "prddrop[]";
element2.id = "prddrop[]";
element2.className = "bankopt"; //this also fails
element2.options[element2.length] = new Option("[-- Please Choose --]", "[-- Please Choose --]");
var arr_items = [{
    "IssuingBank": " --- "
}, {
    "IssuingBank": " --- "
}];
$(document).ready(function () {
    for (var i = 0; i < arr_items.length; i++) {
        element2.options[element2.length] = new Option(arr_items[i].IssuingBank, arr_items[i].IssuingBank);
    }
});
cell2.appendChild(element2);

请帮助我...谢谢!

4

2 回答 2

1

请记住,.appendChild()返回元素。

所以你可以这样做:

cell1.appendChild(element1).className = "class_to_add";

另一种方式:

您可以使用setAttribute(注意:这不适用于 IE8 和更早版本,如评论中@om 所述。)

var i = document.createElement('input'); 
i.setAttribute('class', 'myclass');
document.forms[0].appendChild(i);
于 2013-10-04T05:26:02.117 回答
0

这应该适合你。跨所有浏览器。

var yourClass = document.createAttribute("class");
yourClass.value = "date-pick";
element1.setAttributeNode(yourClass);
于 2013-10-04T05:42:11.083 回答