2013-11-15 34 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(); 
相關問題