#jquery #jquery-selectors #css-selectors
#jquery #jquery-селекторы #css-селекторы
Вопрос:
при событии нажатия кнопки я хочу прочитать значение текстового поля, основанного на определенном классе. на странице есть несколько текстовых полей с этим классом, поэтому я хочу выбрать то, которое находится перед кнопкой. ПРИМЕЧАНИЕ: это НЕ прямо перед, но я хочу, чтобы он выполнял поиск по странице, пока не найдет экземпляр.
я думал, что Prev () сделает это, но, похоже, это не работает
Комментарии:
1. а что, если использовать другой селектор внутри класса one?
2. Вы пробовали prevAll() ?
Ответ №1:
$(this).prevAll('.class:first');
Использовать prevAll
с :first
фильтром
Комментарии:
1. похоже, это не работает. . я получаю jquery (), когда смотрю в firebug на результат этого селектора
2. @ooo вы должны получить jquery в качестве возврата. jQuery всегда предоставляет вам обернутый объект jQuery. Взгляните на эту скрипку : jsfiddle.net/H32gk
Ответ №2:
Предполагая, что у вас неизвестная вложенность и текстовые поля не являются родственными, попробуйте это:
$(":button").click(function() {
var allElem = $("*");
var buttonIndex = allElem.index(this);
var nearest;
$(".text").each(function(i, elm) {
var index = allElem.index(elm);
if (buttonIndex > index) {
nearest = elm;
}
});
alert($(nearest).val());
});
Это зависит от индекса элемента и находит тот, который находится ближе всего к вашей кнопке. Я уверен, что для этого есть какой-то потрясающий селектор, надеюсь, кто-нибудь его опубликует :)