2017-03-16 68 views
2

我有一個多選它看起來像這樣:多選,語法錯誤,不能識別的表達式:選項[值= CC DD]

<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> 

會選擇第一個匹配的值。如何解決這個問題呢?

+3

四次'ID = 「AT1」' - >沒了 –

+0

謝謝大家,我已經解決了這個問題,atMulti = at.split( '');應該是atMulti = at.split(',');用空格......這個錯誤花了我4個小時......我不知道$(「#divat」)中的文字。與','分隔...從數據庫中讀取文本並從一些複選框中寫入... –

回答

0

用相同的html頁面製作具有相同id的多個元素會導致invalid標記。因此,試圖象下面這樣:

var at="aa,bb,cc dd,ee";//values to be select 
 
atMulti = at.split(',');//atMulti=['bb','cc dd','ee'] 
 
$.each(atMulti,function(n,value){ 
 
    $("option[value='"+value+"']").prop('selected',true);//remove $("#test") from here 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<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>

+0

爲什麼要刪除$(「#test」)?這是正確的。 –

+0

'