检查事件目标是否具有特定的祖先

时间:2015-09-22 09:23:48

标签: javascript jquery

我需要检查点击的元素是否具有特定的祖先。

$(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]这不是我所期望的,所以我认为问题出在这里:var ele = $(e.target);但我无法弄清楚出了什么问题用它。

2 个答案:

答案 0 :(得分:0)

使用

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

或者

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

编辑: nearest()给出了真实。请检查一下

FIDDLE

答案 1 :(得分:0)

尝试closest()

<击>     console.log($(this).closest('。datepicker')。length&gt; 0);

假设datepicker在表格内:

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

OR

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