Javascript 有没有办法确定一个键控元素不是某个特定的父元素,还是该父元素的子元素?

Javascript 有没有办法确定一个键控元素不是某个特定的父元素,还是该父元素的子元素?,javascript,jquery,Javascript,Jquery,经过数小时的搜索,我似乎找不到解决方案:-( 我试过了,但没有用: jQuery('#someGlobalNav').delegate('*','keyup', function(){ if(!(jQuery('#itemsForSale').find(jQuery(this))){// do something} jQuery("#itemsForSale, #itemsForSale > * ").focusout(function(){} 尝试使用:not和:contain

经过数小时的搜索,我似乎找不到解决方案:-(

我试过了,但没有用:

jQuery('#someGlobalNav').delegate('*','keyup', function(){
   if(!(jQuery('#itemsForSale').find(jQuery(this))){// do something}

jQuery("#itemsForSale, #itemsForSale > * ").focusout(function(){}
尝试使用:not和:contains

基本上,我有一组链接。让我们使用以下链接:

<div id="someGlobalNav">
<ul id='siteNavigation'>
<li id="itemsForSale">
   <div id="items">
      <ul id='itemNav'>
         <li>
             <div id="menu1">
                <ul>
                   <li><a href="link">menu 1 item 1</a></li>
                   <li><a href="link">menu 1 item 2</a></li>
                </ul>
             </div>
         </li>
         <li>
              <div id="menu2">
                <ul>
                   <li><a href="link">menu 2 item 1</a></li>
                   <li><a href="link">menu 2 item 2</a></li>
                </ul>
             </div>
         </li>
      </ul>
   </div>
</li>
<li><a href="link">Link that Might exist</a></li>
<li><a href="link">AnotherLink that Might exist</a></li>
</ul>
<div><a href="somelink">Arbitrary link</a></div>
</div>


一切都被捕捉到了,等等。唯一的问题是,我只想对不是“itemsForSale”或其子元素的元素进行操作。因此,作为一个通过链接键入的用户,在他们键入itemsForSale之外的空翻之前,一切都是好的--

我想使用:不-但我不知道选择器,因为导航是动态的。我尝试了各种各样的事情,但没有运气


任何想法

对于您的问题,过于简化的解决方案如下所示:

$('a:not(#itemsForSale *)');

jsbin上的演示:

是的-我使用的是jQuery 1.6,没有升级选项。:-(我想我可以修改您必须的内容使其工作。我会喜欢它,在我完成测试后,我会接受。感谢您的回复,谢谢。