我有一个多重选择,看起来像这样:
<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/