在“on”方法中使用obj / this

时间:2013-10-07 19:55:33

标签: javascript jquery jquery-selectors

我的javascript看起来像

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

我知道'on'只接受String,所以如何将 $(this).find('。userinput:last')翻译成字符串?

P.S。我想在每个 .adv_group

中获得最后 .userinput

2 个答案:

答案 0 :(得分: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,以便选择最后{{1}每个.userInput代替所有adv_groups的所有.adv_group中的最后一个。

<强> Demo

答案 1 :(得分:1)

$.each()电话完全没必要,您只需要

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