如何确定被点击的元素是否是某个ID的子元素?

时间:2010-09-25 01:55:30

标签: jquery

如何确定此单击元素是否为somemenu的子集?

jQuery示例:

var clicked = e.target;

// this checks see if the clicked has id of somemenu.
$(clicked).attr("id") == '#somemenu';

somemenu的HTML示例:

<div id="somemenu">
   <a href="something.php"> menu 1 </a>
   <!--bunch of other elements here, can be anything.-->
</div>

我想抓住`div#somemenu的子集中的任何元素?当它被点击时。

3 个答案:

答案 0 :(得分:13)

这将有效:

if ($(clicked).parents('#somemenu').length) {
    // I am a child of somemenu so do stuff.
}    

答案 1 :(得分:1)

使用stopPropagation和jquery的on方法更简单:

jQuery('#myID').on('click',"*",function(e){
          e.stopPropagation(); //stop the propagation          
          console.log("Clicked element: ",jQuery(this)); //get the element clicked by the mouse
          console.log("Parent: ",jQuery(this).closest("#myID"));

});

如果您不停止传播,则应致电jQuery(this);的所有家长

答案 2 :(得分:0)

一种更清洁,更易读的解决方案恕我直言

if($.contains(someElement, clicked)){ // DO STUFF }