2013-04-25 39 views
0

我打電話給一個可重複使用的功能,它爲下拉菜單設置選定的值。我在這裏錯過了什麼?這個javascript下拉選擇函數有什麼錯誤?

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

,我叫它像,

function setSelectedSport(selSport,tempCount){ 

     setDropdownValue($("#sportId2"),selSport); 
    } 

我在$(dropdownId 'option').each(function(){得到一個未定義的錯誤..我失去了一些東西在這裏?

編輯:

將其更改爲$('#'+dropdownId+' option').each(function(){似乎沒有得到執行的ecah()函數後。

回答

3

看起來你錯過了串聯運算符和ID的哈希標記。嘗試:

$('#'+dropdownId+' option') 
+0

當通過螢火蟲調試的每個()函數似乎沒有得到執行。 – 2013-04-25 13:12:56

+0

你確定''#'+ dropdownId +'option''評估爲有效表達式嗎?當你想要的值被硬編碼時會發生什麼? – 2013-04-25 14:34:17

1

嘗試改變:

$(dropdownId 'option').each(function(){ 

到:

$('#' + dropdownId + ' option').each(function(){ 

以及使用prop(),讓您的ID:

setDropdownValue($("#sportId2").prop('id'),selSport); 
0

你可以只使用.val()方法選擇值。

$("#sportId2").val(selSport); 

所以如果你需要的功能,那麼,功能可能只是:

function setDropdownValue(dropdownId,selectedValue) { 
    $('#'+dropdownId).val(selectedValue); 
} 

而且使用它像:setDropdownValue("sportId2",selSport);