2016-03-23 12 views
1

onfocusイベントの<select>からすべての子要素を削除するはずの関数があります。 (すぐにAJAX呼び出しの値を<select>に書き込むことになります)何らかの理由で、最初に呼び出された要素のうちの1つだけを削除し、後続の呼び出しを何も実行しません。なぜ誰かがこれが起こっているかもしれないという手がかりを持っていますか?これはなぜ要素<select>からすべての項目を削除しないのですか?

JSコード:

function handle(e) { 
    for(var i = 0; i < e.children.length - 1; i++) { 
    e.removeChild(e.children[i]); 
    } 
} 
+0

子[0]を削除すると子[1]は直ちに子[0]になります.jQuery empty()関数を使用してください –

+0

OH !!!!!! (facepalms self) –

+0

オプションを削除するには、 'select.options.length = 0'または' while(select.firstChild)select.removeChild(select.firstChi ld) 'または...ああ、複数の子を持つ要素でも同じです。 – RobG

答えて

1

私はhandle()を推測していることはあなたのonfocusイベントハンドラです。eがあなたのイベントオブジェクトであり、任意のchildrenプロパティに

理由を持っていない場合には単に使用しないでselect.innerHTML = ""

+0

Wow(facepalms self again)(facepalms self again)(Sokka-Face unlocked) –

0

だから、答えはVB.NETリストクラスと非常によく似インデックスシステムの影響を避けるために、逆の順序でそれらを削除するには、単純です。 (それはそれは、変更が行われるたびに自分自身を再編成することである。

関連する問題