2011-05-03 52 views
1
var obj = $("form select"); 
alert(obj.find(":selected:eq(0)").val()); // works 
alert(obj.find(":selected:eq(1)").val()); // Does Not Work 

如何從使用緩存的obj的其餘選擇元素中找到選定的選項?獲取緩存的jquery對象的單個元素

var n = 2; 
var nthSelected = $(":selected",obj[n]); //Seems to work 

訪問緩存的對象的單個元素也可以用.filter()進行如下:

alert(obj.filter(":eq(1)").val()); 
+0

我'不一定試圖循環遍歷所有':selected'選項,我想知道如何訪問緩存對象的(第n> 0)個元素。實際上,我希望避免一個循環,因爲它可能直接選擇元素而不使用我的緩存對象(例如:$(「form select:eq(1):selected」))然而,這不是什麼我在這裏問。 – bodine 2011-05-03 17:12:29

回答

0
var selectedValues = []; 

obj.each(function() { 
    var selected = $(':selected', this).val(); 
    selectedValues.push(selected); 
}); 

//now you have an array of all the selected values. :) 
0

像這樣的東西應該工作:

var selects = $('form select'); 
var selected = $(':selected', selects);