有没有办法确定一个关键字元素 - 不是 - 特定的父母还是父母的孩子?

时间:2013-01-26 03:10:51

标签: javascript jquery

我无法在数小时的搜索后找到解决方案: - (

我试着无济于事:

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

jQuery("#itemsForSale, #itemsForSale > * ").focusout(function(){}

尝试使用:not,and: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”或其子女的元素采取行动。所以,作为一个用户通过链接键入,一切都很好UNTIL他们在itemsForSale之外的某些东西上键入 -

我想要使用:不是 - 但我不会知道选择器因为导航是动态的。我尝试了各种其他的运气。

任何想法

1 个答案:

答案 0 :(得分:1)

对您的问题的过度简化解决方案将是这样的:

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

在jsbin上演示:http://jsbin.com/idijos/1/edit