2009-08-11 27 views
1

私はこれでGoogleのためのいくつかの結果を見つけましたが、何も満足していないので、私は誰かが知っているかもしれないことを望んでいた。 innerHTMLのを使用してselect要素を移入すると、IEDOMで選択してください

では動作しませんが、私はそれが、何もしないファイルを設定していると、それはIE以外のすべてで動作するよう

それはそう、ここで誰もが気にする場合のコードです:

<html> 
<head></head> 

<body onload="populate();"> 
<script type="text/javascript"> 
    function populate() 
    { 
    document.getElementById("test").innerHTML = '<option id="a">works</option>'; 
    } 
</script> 

<select id="test"></select> 

</body> 
</html> 

誰にも解決策がありますか?私はすべてを取り除き、手動で別の関数からhtmlを返すようにappendChildを手動で使いたいと思うので、これはうまくいかないと思われます。

すべてのアイデアをいただければ幸いです。

答えて

3

編集:この回答はOPの前に書かれており、彼はappendChild()を使用したくないと述べています。この回答を参考にしておきます。


この投稿はPOJSFを使用します。 (プレーン旧JavaScriptのフレームワーク、フレームワークは、他のすべてのフレームワークのベースとなる!)、それを取得しない人のために
、それはユーモア貧しい人々の試みだ...

代わりにinnerHTMLプロパティを使用しての、あなたが作成することができますあなたは<select>内のすべての<option>を削除する場合document.createElement()

var newOption = document.createElement('option'); 
newOption.label = 'works'; 

newOption.appendChild(document.createTextNode(newOption.label)); 

newOption.id = 'a'; 

document.getElementById('mySelect').appendChild(newOption); 

を使用して<option>

var selectEl = document.getElementById('mySelect'); 
for(var i = selectEl.children.length - 1; i >= 0; i--) { 
    selectEl.removeChild(selectEl.children[i]); 
} 
+0

innerTextはFirefoxではサポートされていません。http://www.quirksmode.org/dom/w3c_html.html – karim79

+0

** @ karim79:**ありがとうございました。 IE6ではInnerTextが本当に必要なだけなので、FirefoxがそれをサポートしていなくてもInnerTextは必要ありません。 –

+0

+1 - 今私は知らなかった。 – karim79

関連する問題