2017-02-21 10 views
0

ちょっとIEのコードに問題があります。基本的にIE上のオプションは削除されません。それはクロムでうまく動作します。jqueryでオプションが削除されない

function removeYrEndAndPettyCashCat() { 
for (var i = 0; i < catsToRemove.length; i++) { 
    $('option[value = "' + String(catsToRemove[i].ID) + '"]').remove(); 
} 
} 

私はこのサイトでいくつかの投稿をチェックしており、.removeはうまく動作するはずです。しかし、最初にドロップダウンが表示されたときにドロップダウンをクリックして削除しようとすると、そこにはまだオプションがあります。ドロップダウンを閉じてもう一度開くと、そのオプションはもう消えてしまいました。これはIEでのみ発生します。誰かがこの問題を抱えていますか?あなたは

  • をIEブラウザを使用している

  • +0

    フィドルまたは実行可能スニペットを送信してください。 – InferOn

    +1

    もっとコードを提供する方が良いと思います。たぶんあなたの間違いはどこか他のところです。 – reporter

    +0

    option要素のremoveメソッドが標準であるかどうかは不明です。代わりにhttps://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/removeを試してみてください – CBroe

    答えて

    1
    • あなたは、文書準備とき、または選択が作成/満たされている上、あなたのコードを実行してもよろしいです。

    私はサンプルで作業しましたが、IE11で動作するようです。

    \t $(document).ready(function(){ 
     
    \t \t $('select[name="test"] option').each(function(){ 
     
    \t \t \t if($(this).val() === "remove"){ 
     
    \t \t \t \t $(this).remove(); 
     
    \t \t \t } 
     
    \t \t }); 
     
    \t });
    <html> 
     
    \t <head> 
     
    \t \t <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
     
    \t </head> 
     
    \t <body> 
     
    \t \t <select id='test' name="test"> 
     
    \t \t \t <option value="remove">Remove1</option> 
     
    \t \t \t <option value="remove">Remove2</option> 
     
    \t \t \t <option value="keep">Remove3</option> 
     
    \t \t \t <option value="remove">Remove4</option> 
     
    \t \t \t <option value="keep">Remove5</option> 
     
    \t \t \t <option value="keep">Remove6</option> 
     
    \t \t \t <option value="remove">Remove7</option> 
     
    \t \t \t <option value="remove">Remove8</option> 
     
    \t \t \t <option value="remove">Remove9</option> 
     
    \t \t </select> 
     
    \t </body> 
     
    </html>

    0

    私はタイムアウトを追加することで修正を見つけました。基本的にIEは、ドロップダウンが動的にロードされる前にjavascriptを実行しています。これはChromeにこの問題がないため、実際には迷惑です。