当我只知道选项的文本而不是值时,我需要以编程方式设置现有选择框的选项。
这是我的代码:
$("#" + eventQuestions[x].code).find('option[text="' + eventAnswers[x].vAnswerString + '"]').attr("selected");
不要过分关注选择正确的html元素或vAnswerString中的正确文本 - 我可以确认这些是正确的。
基本上没有选择该选项。我的代码出了什么问题?
答案 0 :(得分:2)
查看this回答。
您可以使用该过滤器检查内部文本,然后将所选属性设置为:
.attr("selected", true);
示例我测试了它:
$(function() {
$("#select").find("option").filter(function() {
return this.innerHTML == "InnerText";
}).attr("selected", true);
})
答案 1 :(得分:1)
Here is a working example用于jquery 1.6 +。
使用过滤功能选择选项:
var text = "theTextToFind";
var matchingOption = $("select#myselect option").filter(function () {
return $(this).text() == text;
});
使用属性函数设置值:
matchingOption.prop('selected', true);
另请查看此Answer。