Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取选项的文本,只知道其值_Javascript_Jquery_Select_Text_Option - Fatal编程技术网

Javascript 如何获取选项的文本,只知道其值

Javascript 如何获取选项的文本,只知道其值,javascript,jquery,select,text,option,Javascript,Jquery,Select,Text,Option,假设我有这样的代码: <select id="select" multiple="multiple"> <option value="A1">abc</option> <option value="A2">cde</option> <option value="A3">efg</option> </select> 我希望遍历所选数组,以获得第二个数组,该数组包含具有适当值的选项标记文本。值是唯

假设我有这样的代码:

<select id="select" multiple="multiple">
 <option value="A1">abc</option>
 <option value="A2">cde</option>
 <option value="A3">efg</option>
</select>
我希望遍历所选数组,以获得第二个数组,该数组包含具有适当值的选项标记文本。值是唯一的:

var texts = [ "abc", "efg" ];
如何在jquery中实现这一点?

使用value属性获取元素,并使用方法生成数组。其中,使用方法生成单个选择器以避免在数组上迭代

所选var=[A1,A3]; var res=$'[value='+selected.join'],[value='+']'.mapfunction{ 返回this.text;//或$this.text; }.获得; console.logres; abc cde efg 可以使用:selected selector查找所选选项并映射以创建阵列

var texts = $('#select option:selected').map(function(){
  return $(this).text()
}).get();
或者在迭代选定数组时使用属性选择器


可以将属性值选择器用于选项:

    var selected = ["A1", "A3"];
    var text= [];
    for(var i=0; i < selected.length; i++) {
        text.push($('#select option[value=' + selected[i] + ']').text());
    }

this.value已经是所选元素的值,OP想要文本阅读关于什么目标的问题is@charlietfl:好的..我不知道..一直学习新东西@查理:就连我上周也从其中一个答案中学到了:我没有访问选择器的权限。我有值:保存所有选项列表的选项,特别是选择标记和保存selectYes的选择。您可以使用如上所示的值来检索选项文本
var $opts = $('#select option')
var texts = selected.map(function(val){
  return $opts.filter('[value="' + val + '"]').text()
});
    var selected = ["A1", "A3"];
    var text= [];
    for(var i=0; i < selected.length; i++) {
        text.push($('#select option[value=' + selected[i] + ']').text());
    }