javascript为Internet Explorer设置className属性

时间:2011-11-02 12:18:37

标签: javascript internet-explorer classname

我使用以下代码设置dinamically生成的select控件的className属性:

oField.className ="select";   

适用于Firefox而不适用于Internet Explorer。如何在IE上设置此属性?

代码:

var oField = document.createElement("select");  
if(browser == "IE"){  
    oField.size = 1;  
    oField.setAttribute("name","sele"+num); 
    oField.onChange = function(){
        AggiungiRiga(oField.name,oField.value)
    };
}  
else{  
   oField.setAttribute("size",1);
   oField.setAttribute("name","sele"+num);
   oField.setAttribute("onChange","AggiungiRiga(this.name,this.value)");
}  
oField.className ="select";  

这里我将它添加到文档中:

oTd1.appendChild(oField);

oTd1是必须放置选择控件的<td>元素。我知道代码质量不高,原因是遗留代码。

2 个答案:

答案 0 :(得分:0)

我看不到appendChild()方法,您在哪里追加select element

不将oField附加到文档可能会导致问题。

例如:

document.body.appendChild(oField);

从哪个变量browsernum声明?我猜它是否在FF num中工作。

 var oField = document.createElement("select");

 oField.size = 1;
 oField.name = "sele" + num; 

 oField.onChange = function(){AggiungiRiga(oField.name,oField.value)};

 oField.className = "select";

 document.getElementById('tabella').getElementsByTagName('TBODY')[0].childNodes[0].firstChild.appendChild(oField)

你知道吗idTD有什么好处让它变得容易起作用,如果你想要TD id=""任何方式,我会更轻松选择放在第一个TD中,这将完成上面显示的示例

   document.getElementById('tabella').getElementsByTagName('TBODY')[0].childNodes[0].firstChild.appendChild(oField)

然而,您需要将表格视为紧凑

<table id="tabella"><tr><td></td></tr></table>

答案 1 :(得分:-6)

为什么不尝试使用jquery:

$('#idElement').attr('class', 'classname');

或者只是使用javascript:

document.getElementById("idElement").setAttribute("class", "className");