javascript - 多项选择,语法错误,无法识别的表达式:option [value = cc dd]

标签 javascript jquery twitter-bootstrap option multi-select

我有一个多重选择,看起来像这样:

<select name="test" id="test" multiple="multiple">
<option value="aa" id="at1">AA</option>
<option value="bb" id="at1">BB</option>
<option value="cc dd" id="at1">CC DD</option>
<option value="ee" id="at1">EE</option></i>
</select>


现在,我使用以下代码查找值并选择选项:

var at=$("#divat").text();//at="bb,cc dd,ee"
atMulti = at.split(',');//atMulti=['bb','cc dd','ee']
$.each(atMulti,function(n,value){
    $('option[value='+value+']',$('#test)).prop('selected',true);
}


我在输入错误

$("option[value='"+value+"']",$('#test)).prop('selected',true);}


错误代码说

Syntax error, unrecognized expression: option[value=cc dd]


如果我将代码修改为

$.each(atMulti,function(n,value){
    $("option[value='"+value+"']",$('#test)).prop('selected',true);
}


没有错误,只有第一个匹配的值

<option value="bb" id="at1">BB</option>


将被选中。如何解决这个问题呢?

最佳答案

我修复了一些语法,并尝试不对代码进行太多更改,因为我不知道您要实现什么目标...

因此,请尝试以下一项:

https://jsfiddle.net/dq1yt2kv/

<select name="test" id="test" multiple="multiple">
  <option value="aa">AA</option>
  <option value="bb">BB</option>
  <option value="cc dd">CC DD</option>
  <option value="ee">EE</option>
</select>


js

var at= "bb,cc dd,ee";
atMulti = at.split(',');//atMulti=['bb','cc dd','ee']
$.each(atMulti,function(n,value) {
    $("option[value='"+value+"']").prop('selected',true);
});

关于javascript - 多项选择,语法错误,无法识别的表达式:option [value = cc dd],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42834827/

相关文章:

javascript - React 不断转义属性中的 amp 字符 (&)

javascript - 我如何在 javascript 中对 3 维数组进行排序?

jquery - Bootstrap 轮播指示器在点击时不会改变

css - 对齐标题旁边的字形

javascript - 通过node.js连接mysql时访问被拒绝

javascript - 按定义的顺序对数组进行排序

jquery - SlideToggle 对 Bootstrap 下拉菜单有相反的效果

jquery textarea(+field)焦点不起作用

css - angularjs 中的 Twitter-Bootstrap 下拉列表打开/关闭事件

css - Twitter Bootstrap Fluid Grid 系统嵌套与前一行不对齐