有没有办法根据节点值在jQuery(或Javascript)中设置下拉列表的值?
<select name="ddlProperty">
<option value="1" selected="selected"></option>
<option value="2">Animal Kingdom</option>
<option value="3">Epcot</option>
<option value="4">Hollywood Studios</option>
<option value="5">Magic Kingdom</option>
<option value="6">Downtown Disney</option>
</select>
我需要设置Magic Kingdom的选项,如下所示:
$("#ddlLocation").val("Magic Kingdom")
因此魔法王国将成为所选项目,但不会按预期工作。有什么想法吗?
答案 0 :(得分:2)
如果您可以使用值(不是文字!),请使用.val()
执行此操作:
$("#ddlProperty").val("5");
如果您没有,请使用.filter()
,.text()
和.attr()
查找并设置所选<option>
,如下所示:
$("#ddlProperty option").filter(function() {
return $(this).text() === "Magic Kingdom"
}).attr('selected', true);
答案 1 :(得分:1)
类似的东西:
var box = document.getElementById('box'),
options = box.options;
for(var i = 0; i < options.length; ++i){
if(options[i].text == val){
options[i].selected = true;
}
}
答案 2 :(得分:1)
$("#ddlProperty > option").each(function(i, elem) {
if($(elem).text() == "Magic Kingdom") {
$('#ddlProperty').val(elem.value);
return false;
}
});
下次请提供一个正确的示例,其中元素具有ID,并且该ID与代码中的ID匹配。我花了大约5分钟检查错误,直到我注意到ID不同......
答案 3 :(得分:1)
myselect="Magic Kingdom";
$("select[name='ddlProperty'] option").each(function() {
if($(this).text() == myselect) {
$(this).attr('selected', true);
} else {
$(this).attr('selected', false);
}
});