我需要在多个选择框中按值获取项目文本。 我尝试过这段代码,但它给了我整体选中的文字,没有分隔或间距。
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 :(得分:12)
map()
函数可用于创建所需值的数组。试试这个:
var items = $("#<%= ddlSubject.ClientID %> option:selected").map(function() {
return $(this).text();
}).get();
console.log(items.join());
答案 1 :(得分:4)
您可以使用.map
创建所选文字的数组:
var texts = $("#<%=ddlSubject.ClientID %> :selected").map(function() {
return $(this).text();
}).get();