При использовании метода .map() я возвращаю массив с двумя узлами, которые, как я думаю (не объект jQuery/сопоставленный набор). Я хочу применить класс к этому набору, но ничего не происходит.jQuery .map() возвращает массив, а не соответствующий набор (объект jQuery)
$('input#substance, input[name="atc_code"]').map(function() {return $(this).prevAll('label:first')});
Возвращает:
[x.fn.x.init[1], x.fn.x.init[1]]
[
x.fn.x.init[1]
0: label
context: input#substance.ui-autocomplete-input
length: 1
prevObject: x.fn.x.init[1]
__proto__: Object[0]
,
x.fn.x.init[1]
0: label
context: input.small ui-autocomplete-input
length: 1
prevObject: x.fn.x.init[1]
__proto__: Object[0]
Это правильно выбирает, но почему я не могу использовать этот массив? Почему это не объект jQuery?
HTML-:
<div class="fieldset-container">
<label>Substance</label>
<span role="status" aria-live="polite" class="ui-helper-hidden-accessible"></span>
<input type="text" name="substance" id="substance" maxlength="22" autocomplete="off" spellcheck="false" autofocus="autofocus" class="ui-autocomplete-input">
<label title="Required field">ATC code<span class="ma">*</span></label>
<span role="status" aria-live="polite" class="ui-helper-hidden-accessible"></span><input type="text" class="small ui-autocomplete-input" name="atc_code" maxlength="7" autocomplete="off" spellcheck="false">
<label>Year</label>
<div class="small">
<select name="year">...</select>
</div>
</div>
Я уже пробовал это, это не сработает. Эти два элемента являются братьями и сестрами, а 'prevAll ('label: first')' будет возвращать только один элемент *, тогда как мне нужно два. Вот почему мне приходится прибегать к '.map()'. – silkfire
Совсем нет, TJ Crowder. По моей консоли я вижу, что он выбирает два (разных) элемента, которые я хочу. Но он помещает их в массив = ( – silkfire
Добавлен HTML сейчас :) – silkfire