2013-09-25 79 views
0

選擇我想獲得以下代碼動態:獲取的動態選擇

var items = $("#scenario_select option"); 

以上應該成爲(與dropDownObj= $("#scenario_select");

function someFunction(dropDownObj){ 
    var items = $(dropDownObj + " option"); 
    var items = $("#" + dropDownObj + " option"); 
} 

這兩個不工作我沒有找到任何幫助(只有沒有選項標籤)

任何幫助,不勝感激

回答

6

嘗試這樣的:

function someFunction(dropDownObj){ 
    var items = $('#' + dropDownObj.prop('id') + " option"); 
} 

但我想更多的「正確」的方式做到這一點是使用找到拋出,或使用的建議:

function someFunction(dropDownObj){ 
    var items = $("option", dropDownObj); 
} 

這基本上做同樣的事情。找()。請參閱This SO兩個問題之間的比較(tl; dr:他們幾乎相當)。

找項目的數量(如你在評論中指出的),你也可以使用:

function someFunction(dropDownObj){ 
    var items = $("option", dropDownObj).length; 
} 

這比你在評論中張貼的解決方案更短一點。

你也應該注意,由於

dropDownObj= $("#scenario_select"); 

這已經是一個jQuery對象,你不需要使用$來包裝它。考慮到這一點,您的解決方案將變爲:

var items = dropDownObj.children('option').length; 
+0

爲什麼downvote? – rusmus

+0

爲什麼要檢查'prop'而不是使用'find'? – Exception

+0

爲什麼不。爲什麼你想用find而不是$('option',dropDownObj); ? – rusmus

3

這應該起作用。

var dropDownObj = $('#yourDropDownID'); 
dropDownObj.find('option') 
+0

這個也可以,謝謝! – Wandang