jquery这个上下文

假设我有两个这样的div:

当我点击我的按钮’submit_btn’时,我希望能够获得每个div中的textarea。 我试过这样的事情:

 $('body').delegate('.myDiv .submit_btn', 'click', function(){ var myTextarea = $('.info_box', this); }); 

但是返回未定义

请帮忙

你可以这样做 :

 $('body').delegate('.myDiv .submit_btn', 'click', function(){ var myTextarea = $(this).closest('myDiv').find('.info_box'); }); 

另一种方案:

 $('body').delegate('.myDiv .submit_btn', 'click', function(){ var myTextarea = $(this).siblings('.info_box'); }); 

请注意,如果您的jQuery版本比1.7更新,那么最好使用on而不是delegate

那是因为this的作用域是.myDiv .submit_btn ,在那里,textarea不存在。 也许尝试this.parentNode作为范围。

所以,如果你想得到textarea,为什么不简单地做到这一点

 $('.submit_btn').on('click',function(){ var myTextarea= $(this).siblings(".info_box"); }); 

小提琴