我需要检查被单击的元素是否具有特定的祖先。
$(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);
但我无法弄清楚它出了什么问题。
最佳答案
尝试closest()
:
<罢工> console.log($(this).closest('.datepicker').length > 0); 罢工>
假设datepicker
在表内:
console.log($(this).closest('tr').find('.datepicker').length > 0);
或者
console.log($(this).closest('table').find('.datepicker').length > 0);
关于javascript - 检查事件目标是否有特定的祖先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32713203/