0

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

我试过无济于事:

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 之外的某些东西——

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

有任何想法吗

4

1 回答 1

1

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

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

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

于 2013-01-26T03:35:41.997 回答