使用jquery从下拉列表中选择一个选项

时间:2014-05-06 07:13:22

标签: jquery jquery-selectors

如何从以下下拉框中选择ubuntu

<select><option value=""></option>
   <option value="" selected="selected">Select Image</option>
   <option value="3f2cb990-cd0e-4bfa-a23e-54701498a2e5" data-volume_size="2">ubuntu-12.04-server-cloudimg-amd64 (1.4 GB)</option>
</select>

我尝试了以下仍然无法正常工作

$('#id_image_id').find('option:contains("Ubuntu"):contains("12.04")').prop('selected',true) || $('#id_image_id').find('option:contains("ubuntu"):contains("12.04")').prop('selected',true);

3 个答案:

答案 0 :(得分:0)

试试这个:

$("select").val("3f2cb990-cd0e-4bfa-a23e-54701498a2e5");

$('select option[value="3f2cb990-cd0e-4bfa-a23e-54701498a2e5"]').attr('selected','selected');

要获取文字:包含ubuntu

 $('select').find('option:contains("ubuntu")').prop('selected', true);

获取内容ubuntu以及12.04

 $('select').find('option:contains("ubuntu"):contains("12.04")').prop('selected', true);

<强> Working Demo

答案 1 :(得分:0)

由于:contains选择器区分大小写,因此您只能使用:

$('#id_image_id').find('option:contains("ubuntu"):contains("12.04")').prop('selected', true);

根据您的评论,您需要扩展:contains选择器的当前方法:

$.expr[":"].contains = $.expr.createPseudo(function(arg) {
    return function( elem ) {
        return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
    };
});

<强> Fiddle Demo

<强> Reference

答案 2 :(得分:0)

检查此 Working Demo jsFiddle

$("select#id_image_id option").filter(":contains('ubuntu')").prop('selected',true);

您的错误是您没有定义 Id filter contains 的其他内容 strongly case sensitive


另一种方式也可以做同样的事情,

$('select option[value="3f2cb990-cd0e-4bfa-a23e-54701498a2e5"]').attr('selected','selected');

检查此 demo jsFiddle


$(function() {
    $("#valget").val('3f2cb990-cd0e-4bfa-a23e-54701498a2e5');
});

检查此 demo jsFiddle