Javascript multiselect,语法错误,无法识别的表达式:option[value=cc-dd]

Javascript multiselect,语法错误,无法识别的表达式:option[value=cc-dd],javascript,jquery,twitter-bootstrap,option,multi-select,Javascript,Jquery,Twitter Bootstrap,Option,Multi Select,我有一个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> <opti

我有一个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>
我犯了错误

$("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>

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

在同一html页面中使用相同id的多个元素会导致无效标记。因此,请尝试以下方法:

var at=aa、bb、cc dd、ee//要选择的值 atMulti=at.split','//atMulti=['bb','cc dd','ee'] $.eachatMulti,函数n,值{ $option[value='+value+'].prop'selected',true;//从此处删除$test }; AA BB CC DD EE 这:

无法工作,因为其中有两个语法错误。 然后你会有一个不知从哪里冒出来的盗贼,他的id是相同的四倍,这应该是独一无二的

var at=bb,cc dd,ee; atMulti=at.split','//atMulti=['bb','cc dd','ee'] $.eachatMulti,函数n,值{ $option[value='+value+'],$'test'.prop'selected',true; } AA BB CC DD EE
我修正了一点语法,尽量不改变你的代码,因为我不知道你想实现什么

所以,请试试这个:


四次id=at1->nopeThank各位,我已经解决了这个问题,atMulti=at.split',';应为atMulti=at.split',';用空格。。。。。。这个错误花费了我4个小时。。。我不知道$divat.text中的文本;用“,”分隔…文本从数据库中读取,并从某些复选框中写入。。。元素没有任何选定的属性。选定的属性应该用于,收音机,…谢谢大家,我已经解决了这个问题,atMulti=at.split',';应为atMulti=at.split',';用空格。。。。。。这个错误花费了我4个小时。。。我不知道$divat.text中的文本;用“,”分隔…文本从数据库中读取,并从一些复选框中写入…谢谢大家,我已经解决了这个问题,atMulti=at.split“,”;应为atMulti=at.split',';用空格。。。。。。这个错误花费了我4个小时。。。我不知道$divat.text中的文本;用“,”分隔…文本从数据库中读取,并从一些复选框中写入…谢谢大家,我已经解决了这个问题,atMulti=at.split“,”;应为atMulti=at.split',';用空格。。。。。。这个错误花费了我4个小时。。。我不知道$divat.text中的文本;用“,”分隔…文本从数据库中读取,并从某些复选框中写入。。。
<option value="bb" id="at1">BB</option>
$.each(atMulti,function(n,value){
    $("option[value='"+value+"']",$('#test)).prop('selected',true);
}
<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>
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);
});