这个jquery each()选择选项有什么问题?

这个jquery each()选择选项有什么问题?,jquery,each,Jquery,Each,我有下面的功能 function setDropdownValue(dropdownId,selectedValue){ $('#'+dropdownId+' option').each(function(){ if ($(this).val().toLowerCase()==selectedValue.toLowerCase()){ //found the option i was looki

我有下面的功能

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';我遗漏了什么吗???

dropdownId应该只是一个字符串,为什么要传递jQuery对象$'dp1

您应该只传递'dp1'。

dropdownId应该只是一个字符串,为什么要传递$'dp1,它是jQuery对象

你应该通过“dp1”来代替。

试试看

$('#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…有时会导致一些冲突

$('#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…有时它会导致一些冲突

我认为更好的解决方案是按如下方式编写函数,因为这样可以保持小写逻辑

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');

我倾向于认为您应该在select上设置“val”,而不是选项本身。我以前见过这种方法的怪癖

我认为更好的解决方案是按如下方式编写函数,因为这样可以保持小写逻辑

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');

我倾向于认为您应该在select上设置“val”,而不是选项本身。我以前见过这种方法的怪癖

除了toLowerCase之外,还有什么原因让你去做每个函数吗?您可以通过执行$+dropdownId.valselectedValue设置select的值;您也在选项上调用.val函数,而不是在select.how上调用…?通过whick事件…?除了您已经得到的toLowerCase之外,您执行每个函数有什么原因吗?您可以通过执行$+dropdownId.valselectedValue设置select的值;您还在选项上调用.val函数,而不是在select.how上调用…??通过whick事件。。。??