2011-05-03 49 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);