2014-01-15 4 views
1

У меня есть следующий HTML:Jquery найти возвращает элемент не определен

<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); 
} 

Может ли кто-нибудь указать мне правильное направление? я был отладки это в течение часа в настоящее время, используя как next и find

+1

Где ваша функция accept_invite? –

+0

[.next()] (http://api.jquery.com/next/) только получить сразу следующий родной брат – jammykam

+0

@gnack добавил мою функцию accept –

ответ

5

В вашем контексте .team_id и .invite_id не являются следующие (немедленные) братьев и сестер из текущего элемента. Поэтому вы должны использовать .siblings() для достижения того, чего хотите.

Try,

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

$ (это) в функции мыши относится к кнопке и следующему() будет возвращать только смежное управление. Предполагая, что $ (". Уведомления") является контейнером, поэтому вы можете найти свой элемент управления в этом контейнере, например $ (". Уведомления"). Find (". Team_id"). Val().

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