选择除一个之外的所有div

时间:2017-06-13 01:52:00

标签: jquery html

我尝试使用jQuery来选择除了与用户点击的按钮名称匹配的类的div之外的所有div。 这是HTML示例:

   <button name="apples">Apples</button>
   <button name="oranges">Oranges</button>
   <button name="bananas">Bananas</button>

   <div> //This div is also accidentally targeted
       <div id="apples">
           <img src="" alt"" >
       </div>
       <div id="oranges">
           <img src="" alt"" >
       </div>
       <div id="bananas">
           <img src="" alt"" >
       </div>
   </div>

这样的事情:

   <script>
   $("button").click(function() {
   var name = $(this).attr('name');
   $("div:not('#' + name)").toggle();
   // This works, but it obviously also targets other divs on the page.
   });
   </script>

我想过尝试使用类,但似乎正在与更复杂的选择器(例如child,parent,nearest等)结合使用not选择器。我试过了--div:not&#34;&#34; &GT; img--和许多其他组合。我该怎么办?

1 个答案:

答案 0 :(得分:2)

我要做的第一件事是使用一个类来识别你想要定位的元素,即

<div class="target" id="apples">
    <img src="" alt"" >
</div>

然后,将该类与not过滤器组合以匹配您想要的元素

$('.target').not('#' + name).toggle()