如何使用jQuery 3.3.1设置选择列表的选项

时间:2019-02-13 08:02:15

标签: jquery html-select

在这里,我已经尝试了大多数先前问题的答案,但是我无法让jQuery在选择列表中设置一个选项。我确实得到并迭代了每个选项的文本。使用jQuery 3.3.1。

HTML:

<select id="ddlRole" class="ddlRole" style="width:810px" multiple  size="6">
   <option value="-1">--DeSelect--</option>
   <option value="1">Administrator</option>
   <option value="2">Manager</option>
   <option value="3">User</option>
</select>

代码:

$('#ddlrole option').each(function ()                               
{
    //alert(" option text =" + this.text);
    for (i = 1; i < splitdata.length; i++)
    {
        if (splitdata[i] == $(this).text())
        {
            //this.prop("selected",true);
            //$(this).prop('selected', true);                                       $(this).attr("selected", "selected");
            alert("Searched text is found");
        }
    }
});

2 个答案:

答案 0 :(得分:0)

您选择的标签中没有指定任何选项

    <select id="ddlRole" class="ddlRole" style="width:810px" multiple  size="6"></select>

有关splitdata变量的更多信息?它是未定义的

编辑:

尝试一下:

splitdata = ["Administrator","Manager","User"]

$('#ddlRole option').each(function ()                               
{
        console.log(" option text =");
        for (i = 0; i < splitdata.length; i++)
        {
            if (splitdata[i] == $(this).text())
            { 
             $(this).attr("selected", "selected");
            }
        }
});

答案 1 :(得分:0)

如果下拉菜单的值也相同,为什么不尝试将数组传递给val()方法呢?因为它将为您完成工作!

HTML:

<select id="ddlRole" class="ddlRole" style="width:810px" multiple  size="6">
  <option value="A">A</option>
  <option value="B">B</option>
  <option value="C">C</option>
  <option value="D">D</option>
  <option value="E">E</option>
  <option value="F">F</option>
  <option value="G">G</option>
</select>

jQuery:

var splitdata = ['B', 'C', 'E'];
$('#ddlRole').val(splitdata); 

JsFiddle

除此之外,我想指出几点:

  1. 您的下拉元素的ID名称为ddlRole,而在jQuery代码中,您正在使用#ddlrole

  2. 您的FOR循环从1开始。但是在数组中,第一个元素从第0个索引开始。