Jquery find元素返回undefined

时间:2014-01-15 03:37:42

标签: javascript jquery

我有以下HTML:

    <button class="btn btn-xs btn-success m-t-xs invite_accept">Accept</button>
<button class="btn btn-xs btn-danger m-t-xs invite_decline">Decline</button>
<input type="hidden" value="<?php echo $notification['team_id']?>" class="team_id">
<input type="hidden" value="<?php echo $notification['invite_id']?>" class="invite_id">

现在,当按下接受按钮时,我有以下Javascript:

$('.notifications').on('click', '.invite_accept', function(){
    accept_invite($(this).next('.team_id').val(), $(this).next('.invite_id').val());
});

然而,这会返回undefined

   function accept_invite(team_id, invite_id){
   alert(''+team_id+' '+invite_id);
}

有人能指出我正确的方向吗?我现在使用nextfind

调试了一个小时

2 个答案:

答案 0 :(得分:5)

在您的上下文中.team_id.invite_id不是当前元素的下一个(直接)兄弟。因此,您应该使用.siblings()来实现您想要的目标。

尝试,

$('.notifications').on('click', '.invite_accept', function(){
    accept_invite($(this).siblings('.team_id').val(), $(this).siblings('.invite_id').val());
});

答案 1 :(得分:0)

$(this)在click函数中指的是按钮而next()只返回相邻的控件。假设$(“。notifications”)是一个容器,所以你可以在容器中找到你的控件,如$(“。notifications”)。find(“。team_id”)。val()。