2013-11-15 33 views
4

我需要通过在多个选择框中的值获取项目的文本。 我已经试过这段代码,但它给我没有分隔或间距的整体选定的文本。通过值获得项目的文本多选择使用jquery/javascript

if ($("#<%=ddlSubject.ClientID %>").val()) { 
    var values = $("#<%=ddlSubject.ClientID %>").val(); 
    if (values.indexOf(',') != -1) { 
     values = $(values).split(','); 
    } 
    var texts = $("#<%=ddlSubject.ClientID %> :selected").text(); 
    alert(texts); 
    if (texts.indexOf(',') != -1) { 
     texts = $(texts).split(','); 
    } 
} 
}); 

这是我的渲染HTML选择列表

<select size="4" name="ctl00$ContentPlaceHolder1$ddlSubject" multiple="multiple" id="ctl00_ContentPlaceHolder1_ddlSubject" class="chosen-select" style="height: 250px; width: 250px; display: none;"> 
    <option value="Account - I" style="font-style:italic;" disabled="disabled">Account - I</option> 
    <option value="1">Chap1</option> 
    <option value="2">Chap2</option> 
    <option value="3">Chap3</option> 
    <option value="4">Chap4</option> 
    <option value="Joint Venture" style="font-style:italic;" disabled="disabled">Joint Venture</option> 
    <option value="5">Chap1</option> 
    <option value="6">Chap2</option> 
    <option value="7">Chap3</option> 
    <option value="8">Chap4</option> 
</select> 

上面的代码给我的文字是这样"chap1chap2chap3"如果这些项目被选中。 我想用','或其他任何东西来分离文本。我如何获取选定的文本?

+0

请出示你想获得输出。 –

回答

10

map()功能,可用于创建自己需要的任何值的数组。试试这个:

var items = $("#<%= ddlSubject.ClientID %> option:selected").map(function() { 
    return $(this).text(); 
}).get(); 
console.log(items.join()); 

Example fiddle

4

您可以使用.map创建所选文本的数组:

var texts = $("#<%=ddlSubject.ClientID %> :selected").map(function() { 
    return $(this).text(); 
}).get(); 
相关问题