2013-10-07 2 views
2

Мой Javascript выглядитИспользуйте объект/это «на» методе

$('.adv_group').each(function(){ 
    var eachAdvGroup = $(this); 
    $(document).on('keypress', **eachAdvGroup.find('.userinput:last')** ,function(){ 
     //do something 
    } 
}) 

Я знал, что «на» только принимает строку, так как перевести $ (это) .find (»UserInput:. Последний ') в строку?

P.S. Я хочу, чтобы получить последний .userinput в каждом .adv_group

+0

Вы можете попробовать '$ (документ) .он ('нажатие клавиши', '.userinput: последний раз', function() {}); ' – Chad

ответ

8

Вы можете просто сделать:

$('.adv_group').on('keypress', '.userinput:last', function(){ 
    ........ 
}); 

Jquery внутренне делает петлю через на все соответствующие .adv_group.

И если вы имеете в виду, что .adv_group не может существовать все время, то передайте его другому родителю или документу.

$(document).on('keypress', '.adv_group .userinput:last-of-type', function(){ 
    ........ 
}); 

Поскольку adv_group генерируется на лету заказовМои, чтобы выделить его на каждом уровне вы должны использовать :last-of-type или :last-child и не :last, так что она выбирает последний .userInput каждого .adv_group вместо последнего из всех .userInput всех adv_groups в сочетании.

Demo

+0

@nietonfir, если вы привязываете его к заголовку документа, вам не нужно использовать его в документе, готово, иначе да. Но я всегда предлагаю придерживаться максимально приближенного доступного родителя, а не просто делегировать все в голову документа. – PSL

+0

На самом деле я хочу получить последнюю userinput в каждой adv_group – McDream

+0

@McDream да, вы должны получить его ... – PSL

1

$.each() вызов совершенно не нужен, все, что вам нужно, это

$(document).on('keypress', '.adv_group .userinput:last-of-type', function(e) { 
    var $ele = $(this); 
    //do something 
} 
+0

fyi .. ': last' не будет работать в этом случае, см. Mu answer обновлено. Вы можете исправить это и в своем, а также – PSL

+0

@PSL Действительно. ': last-child' должен выполнять эту работу, а также imho. – nietonfir

+0

Yup .. :) так +1 для вас .. – PSL

Смежные вопросы