2017-02-21 2 views
0

Эй У меня проблема с моим кодом в IE. В принципе, он не будет удалять эту опцию в IE. Он отлично работает на хроме.Опция не удаляется в jquery

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

Я проверил несколько постов на этом сайте, и они говорят, что .remove должны работать, и это делает в консоли. Однако, когда я пытаюсь удалить, щелкнув по выпадающему списку при первом появлении выпадающего списка, у него есть опция. Если я закрою выпадающий список и снова открою его, опция теперь исчезнет. Это происходит только в IE. Кто-нибудь сталкивался с этим, и если бы вы могли предложить исправить?

+0

попробуйте представить скрипт или исполняемый фрагмент – InferOn

+1

Я думаю, что лучше предоставить больше кода. Может быть, ваша ошибка в другом месте. – reporter

+0

Не уверен, что метод удаления элемента option является стандартным; попробуйте использовать https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/remove вместо этого – CBroe

ответ

1
  • Какой IE браузер вы используете
  • Вы уверены, что выполнить свой код на документ, готовый или когда выбор заполнен/создан.

Я просто работал над образцом и, похоже, работает в 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 не имеет этой проблемы.

Смежные вопросы