在这里,我已经尝试了大多数先前问题的答案,但是我无法让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");
}
}
});
答案 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);
除此之外,我想指出几点:
您的下拉元素的ID名称为ddlRole
,而在jQuery代码中,您正在使用#ddlrole
。
您的FOR
循环从1
开始。但是在数组中,第一个元素从第0
个索引开始。