如何从以下下拉框中选择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);
答案 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)
$("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');
$(function() {
$("#valget").val('3f2cb990-cd0e-4bfa-a23e-54701498a2e5');
});