我有一个下拉列表,其中包含使用dwr调用加载的值列表。我从db获取数据说我有一个名为India的位置。我用
$('select[name="cname"]').find(
'option:contains("'
+ data.loc + '")')
.attr("selected", true);
选择它。 cname是下拉名称。 data.loc是我从db获取的数据。这里的问题是,如果我有两个位置,如印度和印第安纳州,它会迭代并设置两个值,并设置最近的值(印第安纳州)。要设定的实际价值是印度。只有当我选择印第安纳州时才必须选择而不是印度。有没有办法解决这个问题?
答案 0 :(得分:1)
您可以使用filter()来应用自定义过滤器匹配按选择器返回的元素。
$('select[name="cname"] option').filter(function(){
return $(this).text() == data.loc;
}).attr("selected", true);
答案 1 :(得分:0)
为什么不使用val()
$('select[name="cname"]').val(data.loc)
答案 2 :(得分:0)
使用Equals Selecter。请参阅this
答案 3 :(得分:0)
为什么不检查相等性:
if($(this).val() == data.loc){
$('select[name="cname"] option[value="' + data.loc + '"]').attr("selected", "selected");
}
答案 4 :(得分:0)
你可以通过Val()
完成,尝试下面它会帮助你..
$('select[name="cname"]').val(data.loc);
alert($("select[name='cname'] option:selected").text());