检测是否存在DOM树中定义的id

时间:2016-12-05 10:25:18

标签: jquery parent

我搜索了一种检测JQuery点击目标是否在其DOM树中具有已定义标识$('#contextMenu')的父级的方法。



$("html").click(function(e) {
  if ($(e.target).parents('#contextMenu')) {
    alert('yes');
  }
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="contextMenu">
  <li><a href="#"><i class="fa fa-user-plus"></i> share</a>
  </li>
</ul>
&#13;
&#13;
&#13;

怎么做?

2 个答案:

答案 0 :(得分:3)

检查length属性。

$( "html" ).click(function(e) {         
   if ($(e.target).parents('#contextMenu').length) {
      alert('yes');
   }
});

然而.closest()表现更好。

感谢@A. Wolff,您可以使用Event Delegation

$(document).on('click', '#contextMenu', function(){ 
   alert('yes'); 
});

答案 1 :(得分:2)

使用.length属性检查元素是否存在。

$( "html" ).click(function(e) {         
   if ($(e.target).parents('#contextMenu').length) {
      alert('yes');
   }
});

如果长度为0,则表示未找到任何元素,