Я хочу получить доступ к параметрам select на основе стоимости. У меня есть массив из бэкэнда, затем я преобразовал его в массив JavaScript, но получил эту ошибку
Uncaught Error: Syntax error, unrecognized expression: #workShop option[value=parentClosedWS[i]]
Когда я печатаю ParentCloseWS, он имеет такие значения, как это ["str1", "str2"]
Вот код:
var parentClosedWS = <?php echo json_encode($parentClosedWS);?>;
var closedWS = <?php echo json_encode($closedWS );?>;
console.info(closedWS);
console.info(parentClosedWS);
for (i = 0; i < parentClosedWS.length; i++) {
console.info(typeof(parentClosedWS[i]));
var parent = String(parentClosedWS[i]);
console.info(parent);
$("#workShop option[value = " + 'parentClosedWS[i]' + "]").prop('disabled', true);
}
Это HTML:
<select id = "workShop" class = "floatLabel" name = "workshopsel">
<option value = "" class = "empty"></option>
<option value = "Marketing">Marketing </option>
<option value = "Sales">Sales</option>
<option value = "IT">IT</option>
<option value = "Graphic Design">Graphic Design</option>
<option value = "HR">HR</option>
<option value = "Supply chain">Supply chain</option>
<option value = "Media production">Media production</option>
<option value = "Development">Development</option>
<option value = "TOT">TOT</option>
<option value = "Project management">Project management</option>
</select>
Пожалуйста, предоставьте образцы данных явный - (Что такое $parentClosedWS, что такое $closedWS?), То же самое с вашим консольный вывод. Другая ваша проблема: вы хотите получить доступ к parentClosedWS[i], но вы создали здесь НИТЬ и неправильно вызываете объект!
$(`#workShop option[value=${parentClosedWS[i]}]`).prop('disabled', true);


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Удалите одинарные кавычки вокруг parentClosedWS[i];. Эти одинарные кавычки преобразуют его в эту конкретную строку, а не дают вам значение.
Строка должна гласить:
$("#workShop option[value = " + parentClosedWS[i] + "]").prop('disabled', true);
Вот рабочий пример:
var parentClosedWS = ["HR", "IT"];
for (i = 0; i < parentClosedWS.length; i++) {
$("#workShop option[value = " + parentClosedWS[i] + "]").prop('disabled', true);
}<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id = "workShop" class = "floatLabel" name = "workshopsel">
<option value = "" class = "empty"></option>
<option value = "Marketing">Marketing </option>
<option value = "Sales">Sales</option>
<option value = "IT">IT</option>
<option value = "Graphic Design">Graphic Design</option>
<option value = "HR">HR</option>
<option value = "Supply chain">Supply chain</option>
<option value = "Media production">Media production</option>
<option value = "Development">Development</option>
<option value = "TOT">TOT</option>
<option value = "Project management">Project management</option>
</select>Именно это значительно упрощают литералы шаблонов ES6: $(`#workShop option[value=${parentClosedWS[i]}]`).prop('disabled', true);
Также укажите HTML.