javascript set свойство className для Internet Explorer - PullRequest
0 голосов
/ 02 ноября 2011

Я устанавливаю свойство className динамически генерируемого элемента управления select со следующим кодом:

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>, в который должен быть помещен элемент управления select). Я знаю, что код не хорошего качества, потому что это устаревший код.

Ответы [ 2 ]

0 голосов
/ 02 ноября 2011

Я не вижу appendChild() метода, куда вы добавляете select element?

не добавление oField к документу может вызвать проблемы.

например:

document.body.appendChild(oField);

Кроме того, откуда объявлены переменные browser и num? Я думаю, если его работа в 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)

Знаете ли вы, что могло бы сделать это легко, у меня был id для TD, и это сработало, я был бы легче, если бы у вас был TD id="" в любом случае, если вы хотите, чтобы выбор был помещен в Первый TD это завершит пример, показанный выше

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

однако вам понадобится компактный стол

<table id="tabella"><tr><td></td></tr></table>
0 голосов
/ 02 ноября 2011

Почему бы вам не попробовать сделать это с помощью jquery:

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

Или просто с помощью javascript:

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