2015-09-22 2 views
0

Мне нужно проверить, имеет ли элемент, на который был нажат, определенный предок.Проверка того, имеет ли целевой объект определенный предок

$(document).click(function(e) { 
    console.log(e.target); 
    var ele = $(e.target); 
    console.log(ele.parents('.datepicker').length > 0); 
} 

Это выходы:

<td class="active">24</td> 
false 

Но если я, в консоли, сделайте

$('td.active').parents('.datepicker').length > 0 

он выводит

true 

Выход $(e.target); является: [td.active, context: td.active] который ISN» t, чего бы я ожидал, поэтому я думаю, что проблема здесь: var ele = $(e.target);, но я не могу понять, что с этим не так.

ответ

0

Использование

console.log($(e.target).parents('.datepicker').length > 0); 

Или

console.log($(ele).parents('.datepicker').length > 0); 

Edit: ближайший() дает истинное. Пожалуйста, проверьте это

FIDDLE

+0

Оба этих вывода ложной – jhulme

0

Попробуйте closest():

console.log ($ (это) .closest ('Datepicker.) длина> 0.);

Предполагая datepicker находится в таблице:

console.log($(this).closest('tr').find('.datepicker').length > 0); 

ИЛИ

console.log($(this).closest('table').find('.datepicker').length > 0); 
+0

Пробовали с '' this' ele' и 'e.target' и все вывод как false – jhulme

+0

@jhulme, не стесняйтесь найти обновления – Arvind

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