我有一个选择控件,在一个javascript变量,我有一个文本字符串。

使用jQuery,我想设置选择控件的选定元素为我有文本描述的项目(而不是值,这是我没有的)。

我知道用值来设置它很简单。如。

$("#my-select").val(myVal);

但我有点难住了,通过文本描述。我想一定有办法从文本描述中得到价值,但我的大脑在周五下午太忙了,无法解决这个问题。


当前回答

获取选择框的子元素;循环遍历它们;当你找到你想要的选项时,将其设置为所选选项;返回false停止循环。

其他回答

我发现通过使用attr,你最终会选择多个选项,当你不想-解决方案是使用prop:

$(“#myDropDown option:text=“+ myText +”)。道具(selected”、“selected”);

$("#myselect option:contains('YourTextHere')").val();

将返回包含文本描述的第一个选项的值。测试了这一点,并工作。

这句话很管用:

$("#myDropDown option:contains(myText)").attr('selected', true);

我知道这是一篇老文章,但是我无法使用jQuery 1.10.3和上面的解决方案来实现文本选择。 我最终使用以下代码(spoulson的解决方案的变化):

      var textToSelect = "Hello World";

      $("#myDropDown option").each(function (a, b) {
            if ($(this).html() == textToSelect ) $(this).attr("selected", "selected");
        });

希望它能帮助到别人。

jQuery 1.9.1 (jQuery 1.9.1)

$("#my-select").val("Dutch").change();

注意:不要忘记更改(),我不得不搜索很长时间,因为那:)