Селектор jquery для предыдущего экземпляра класса - PullRequest
0 голосов
/ 25 апреля 2011

при событии нажатия кнопки, я хочу прочитать значение текстового поля на основе определенного класса. Есть несколько текстовых полей с этим классом на странице, поэтому я хочу взять тот, который находится перед кнопкой. ПРИМЕЧАНИЕ: это НЕ непосредственно раньше, но я хочу, чтобы он просматривал страницу до тех пор, пока не найдет экземпляр.

я думал Prev () сделал бы это, но, похоже, не работает

Ответы [ 2 ]

3 голосов
/ 25 апреля 2011
$(this).prevAll('.class:first');

Используйте prevAll с :first фильтром

0 голосов
/ 25 апреля 2011

Предполагая, что у вас есть неизвестное вложение, и текстовые поля не родные, попробуйте это:

$(":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());
});

Это основывается на индексе элемента и находит тот, который ближе всего ктвоя кнопкаЯ уверен, что есть какой-то потрясающий селектор для этого, надеюсь, кто-то опубликует его :)

Пример кода на jsfiddle

...