получение отдельных элементов кэшированного объекта jquery

#jquery #select #option #selected

#jquery #html-select

Вопрос:

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

Как бы я нашел выбранный вариант среди остальных выбранных элементов, используя мой кэшированный объект obj?

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

Доступ к отдельным элементам ваших кэшированных объектов также может быть выполнен с помощью .фильтруйте() следующим образом:

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

Комментарии:

1. Я не обязательно пытаюсь перебирать все параметры ‘: selected’, мне интересно получить доступ к (n-му > 0) элементам моего кэшированного объекта. На самом деле я надеюсь избежать цикла, потому что, вероятно, так же быстро выбрать элемент напрямую, не используя мой кэшированный объект (например: $(«form select:eq (1):selected»)) Однако это не то, о чем я здесь спрашиваю.

Ответ №1:

 var selectedValues = [];

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

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

Ответ №2:

Что-то вроде этого должно сработать:

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