javascript - 在字符串数组上循环时无法访问选项变量

标签 javascript php jquery html

我想根据值访问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.log(closedWS);
console.log(parentClosedWS);
for (i = 0; i < parentClosedWS.length; i++) {
  console.log(typeof(parentClosedWS[i]));
  var parent = String(parentClosedWS[i]);
  console.log(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[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>

关于javascript - 在字符串数组上循环时无法访问选项变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49615410/

相关文章:

javascript - 如何将文件夹导入为Vue组件

javascript - 在 lightSlider 中,单击缩略图后自动播放停止

javascript - 最小-最大总和 - 输出错误

php - MYSQL、PHP)使用 UNION ALL 从多个表的所有列获取值

php - Laravel 调用未定义方法 Intervention\Image\File::delete()

javascript - php jquery 投票系统

javascript - 如何在删除字符后使用 jQuery 删除搜索结果?

javascript - jqgrid 服务器控件的每次回发都会调用 ashx 文件

php数组将一个数组的值添加到另一个数组

javascript - Div 在淡入淡出时闪烁