-2

次のコードを使用して、動的に生成された選択コントロールの className プロパティを設定します。

oField.className ="select";   

Internet Explorer ではなく Firefox で動作します。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>、選択コントロールを配置する必要がある要素です)。コードの品質が良くないことはわかっていますが、原因はレガシー コードです。

4

2 に答える 2

0

メソッドが表示されません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)

何が簡単になったのか知っていますかidTDそれがうまくいきました。選択を最初の TD に配置したい場合は、TD id=""何らかの方法があれば簡単です。これにより、上記の例が完成します。

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

ただし、テーブルをコンパクトにする必要があります

<table id="tabella"><tr><td></td></tr></table>
于 2011-11-02T12:37:26.067 に答える
-6

jqueryでやってみませんか:

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

または単にjavascriptを使用:

document.getElementById("idElement").setAttribute("class", "className");
于 2011-11-02T12:26:00.413 に答える