2013-04-25 78 views
0

我有以下功能,這個jquery每個()選擇選項有什麼問題?

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');我缺少的東西?

+0

除了你所擁有的toLowerCase之外,是否有一個理由讓你完成每個功能?你可以通過設置$('#'+ dropdownId).val(selectedValue)來設置選擇的值。你也在選項上調用.val()函數,而不是在select上。 – riceroni 2013-04-25 13:28:03

+0

你是怎麼打電話來的? – Gautam3164 2013-04-25 13:31:46

回答

3

dropdownId應該只是一個字符串,爲什麼你通過$('#dp1")這是一個jQuery對象?

您應該通過'dp1'來代替。

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 ....有時它會導致一些衝突

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',而不是在選項本身上。這種方法我以前見過怪癖。