通过值使用jquery / javascript选择获取项目的文本

时间:2013-11-15 14:19:15

标签: javascript jquery html-select multiple-select

我需要在多个选择框中按值获取项目文本。 我尝试过这段代码,但它给了我整体选中的文字,没有分隔或间距。

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"。 我希望使用','或其他任何东西进行文本分离。如何获取所选文本?

2 个答案:

答案 0 :(得分:12)

map()函数可用于创建所需值的数组。试试这个:

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

Example fiddle

答案 1 :(得分:4)

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

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