У меня есть выбор, который содержит следующую опцию:

<select class="selectpicker" id="uploaded-files">
   <option value="hello' world.pdf">hello' world.pdf</option>
</select>

Я пытаюсь выбрать параметр со значением hello' world.pdf, но я получил следующую ошибку:

Ошибка: синтаксическая ошибка, нераспознанное выражение: опция # uploaded-files [value = '"hello' world.pdf" ']

Это мой код:

let fileName = "hello' world.pdf";
$("#uploaded-files option[value='" + fileName + "']").remove();
0
sfarzoso 25 Фев 2020 в 14:05

2 ответа

Лучший ответ

Проблема здесь, конечно, в том, что по времени fileName оценивается, он может содержать символы, которые делают синтаксис вашего селектора jQuery недействительным.

Вы могли бы найти способ экранирования строки fileName.

Или вы можете пойти по более простому пути, чтобы вообще не использовать селекторы jQuery, и использовать .filter() вместо:

$("#uploaded-files option").filter(function(){
    return $(this).prop('value') === fileName;
}).remove();
2
George 25 Фев 2020 в 11:11

Пожалуйста, обратитесь ниже код.

let fileName = "hello' world.pdf";
$('#uploaded-files').children('option[value="' + fileName + '"]').remove()
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="selectpicker" id="uploaded-files">
  <option value="hello' world.pdf">hello' world.pdf</option>
</select>
1
Shiv Patne 25 Фев 2020 в 11:17