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

使用jquery从下拉列表中选择选项,jquery,jquery-selectors,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-c

如何从下面的下拉框中选择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>
试试这个:

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

通过文本获取:包含ubuntu的

 $('select').find('option:contains("ubuntu")').prop('selected', true);
获取ubuntu和12.04版的内容

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

由于
: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;
    };
});

检查此 您的错误是您没有定义
Id
,而
过滤器包含的另一个内容
区分大小写的


另一种方法你也可以做同样的事情

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

检查此我不想通过val执行此操作,因为它可能会更改。我还可以检查包含ubuntu和12.04的文本吗?在这种情况下,如何搜索不区分大小写的文本不知道有什么问题代码似乎不起作用。是否将更新
$.expr[":"].contains = $.expr.createPseudo(function(arg) {
    return function( elem ) {
        return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
    };
});
$("select#id_image_id option").filter(":contains('ubuntu')").prop('selected',true);
$('select option[value="3f2cb990-cd0e-4bfa-a23e-54701498a2e5"]').attr('selected','selected');
$(function() {
    $("#valget").val('3f2cb990-cd0e-4bfa-a23e-54701498a2e5');
});