如何使用Javascript从multi-select获取所有选定选项文本
我在“多重选择”中的“获取所有选定项”选项中遇到问题如何使用Javascript从multi-select获取所有选定选项文本,javascript,jquery,select,Javascript,Jquery,Select,我在“多重选择”中的“获取所有选定项”选项中遇到问题 <select multiple="" title="" class="" id="fm_delivery_or_collection" name="fm_fields[fm_delivery_or_collection][]"> <option value="90">Delivery or Collection1</option> <option value="91">Delivery
<select multiple="" title="" class="" id="fm_delivery_or_collection" name="fm_fields[fm_delivery_or_collection][]">
<option value="90">Delivery or Collection1</option>
<option value="91">Delivery or Collection2</option>
<option value="92">Delivery or Collection3</option>
</select>
Bellow是我的代码,它只返回我第一个选择的选项
var select = form.find('select')
for (var i = 0; i < select.length; i++)
{
var s_id = jQuery(select[i]).attr('id');
var str="",i;
var e = document.getElementById(s_id);
var strUser = e.options[e.selectedIndex].text;
var name = jQuery(select[i]).attr('name')
var str1 = jQuery(select[i]).attr('id').replace("fm_"," ")
requestString += "<b>"+str1.replace(/_/g," ")+"</b>" + ':' +strUser+"<br>";
}
因此,请建议我如何获取所有选择的选项文本以及我在哪里出错?试试这个
$("#fm_delivery_or_collection option").each(function(){
if($(this).attr('selected') == 'selected')
{
var name = $("#fm_delivery_or_collection").attr('name')
var str1 = $("#fm_delivery_or_collection").attr('id').replace("fm_"," ")
requestString += "<b>"+str1.replace(/_/g," ")+"</b>" + ':' +strUser+"<br>";
}
})
它将返回所选值的数组
通过使用Jquery
从select调用的val函数将返回一个数组(如果是倍数)。您的评论请告诉我如何获取所有选定选项文本:
希望对你有所帮助
现在把所有的都排在一行
var text = $('#selector option:selected').toArray().map(item => item.text).join();
它是这样返回的:
text1,text2,text3,text4
只需添加以下代码行:-
var reciever= jQuery('#to_select option:selected').toArray().map(item => item.text).join();
/* alert(reciever); */
选择多个或选择[select.selectedIndex]的值是一个数组…答案过于复杂。您可以使用.map获取所有选定的选项文本$select:selected.mapfunction i,元素{return jquerylement.text;}.get;查看您的迭代—您正在迭代选项,而选项没有id和名称。你们能看到吗?你们可以加上。家长在那个里,试着用它。哦,是的,你们是对的@Jai…thanx的建议…我现在编辑好了好的和简单的解决方案。如果需要不同的输出,join将接受分隔符作为参数。例如,连接“|”,将输出text1 | text2 | text3 | text4。还有一点小小的改进:jQuery建议使用$'selector'.find'option:selected',因为单独按ID搜索依赖于document.getElementById,这非常快,而完整选择器不依赖。如果选择器引用了一个select标记,您还可以从选择器中删除不必要的选项以提高效率:
$("#fm_delivery_or_collection option:selected").each(function () {
var $this = $(this);
if ($this.length) {
var selText = $this.text();
console.log(selText);
}
});
$("#id :selected").each(function (i,sel) {
alert($(sel).text());
});
$("#selection option:selected").each(function () {
var $this = $(this);
if ($this.length) {
var selText = $this.text();
console.log(selText);
$('#selected').append(selText+', ');
}
});
var text = $('#selector option:selected').toArray().map(item => item.text).join();
text1,text2,text3,text4
var reciever= jQuery('#to_select option:selected').toArray().map(item => item.text).join();
/* alert(reciever); */