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"); });
小提琴