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

标签 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); 但我无法弄清楚它出了什么问题。

最佳答案

尝试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/

相关文章:

jquery - 简单的 jQuery : Why does this not work?

javascript - 使用 jQuery 替换文本而不删除子项

javascript - 获取图像的大小、高度和宽度?

javascript - 在django模板中单击按钮时播放音频

javascript - Powershell 向下滚动网页/Powershell 截图

javascript - 通过多选显示/隐藏多个 Div

javascript - 如何获取 img id 以根据点击分享或喜欢或评论动态构建 IMG 标签

javascript - 点击事件不会在元素上触发

javascript - 谷歌地图缩放事件: Ignored attempt to cancel a touchend event with cancelable=false

javascript - ajax post成功后,如何使用JQuery .load()方法发送POST请求