.className()似乎不起作用

时间:2013-10-04 05:19:08

标签: javascript html class dom

我有一个动态添加行的表。这些行包含日期选择器和下拉列表,我可以使用.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);

请帮帮我...谢谢!

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

这对你有用。在所有浏览器中。

var yourClass = document.createAttribute("class");
yourClass.value = "date-pick";
element1.setAttributeNode(yourClass);