我有以下功能,
function setDropdownValue(dropdownId,selectedValue){
$('#'+dropdownId+' option').each(function(){
if ($(this).val().toLowerCase()==selectedValue.toLowerCase()){
//found the option i was looking for, do what i want
$(this).val(selectedValue);
}
});
}
我正在传递dropdownId=$('#dp1")
和selectedValue='Bat'
,由于某种原因,我的每个()函数都没有被执行..我这样称呼setDropdownValue($("#dp1"),'Bat');
我错过了什么?< / p>
答案 0 :(得分:3)
dropdownId
应该只是一个字符串,为什么要传递{j}对象的$('#dp1")
?
您应该改为'dp1'
。
答案 1 :(得分:0)
尝试
$('#dp1 option').each(function(){
if ($(this).val().toLowerCase()==selectedValue.toLowerCase()){
//found the option i was looking for, do what i want
$(this).val(selectedValue);
}
});
为什么需要使用dropdownId ....有时会导致一些冲突
答案 2 :(得分:0)
我认为更好的解决方案是按如下方式编写函数,因为这将保持小写逻辑
function setDropdown(id, value){
var dropdown = $('#' + id);
dropdown.find('option').each(function(){
if($(this).val().toLowerCase() == value.toLowerCase()){
dropdown.val($(this).val());
return;
}
});
}
我会这样称呼这个函数......
setDropdown('myDropdownId', '0000-AABBCC');
我倾向于认为你应该在选择上设置'val',而不是选项本身。我以前用这种方法看过怪癖。