如何使用Jquery' s:不选择ul

时间:2014-04-30 08:17:56

标签: javascript jquery jquery-selectors

我有一个类似于此的ul列表:

<ul>
 <li class="category">Category 1
    <ul>
       <li class="product alpha_a">A Product</li>
       <li class="product alpha_b">B product</li> 
    </ul> 
  </li>
 <li class="category">Category 2
    <ul>
       <li class="product alpha_a">Another Product</li>
       <li class="product alpha_c">c product</li> 
    </ul> 
  </li>
</ul>

我要做的是隐藏不属于选定alpha类的li元素。我试过这个(在这里简化):

$(".alpha_a").addClass("alphaselected");
$(".product li:not(.alphaselected)").hide();

但它不起作用。我也试过(和许多其他人一样):

$("#sitemap li:not(.alphaselected,.category)").hide();

似乎隐藏了一切。

有什么想法吗?

由于

3 个答案:

答案 0 :(得分:2)

它应该是 - product类属于li元素,因此你的后代选择器不会返回任何元素

$("li.product:not(.alphaselected)").hide();

演示:Fiddle

答案 1 :(得分:2)

试试这个:

$(".alpha_a").addClass("alphaselected");
$(".product:not(.alphaselected)").hide();

fiddle link

答案 2 :(得分:0)

使用:

$(".alpha_a").addClass("alphaselected");
$("li.product:not(.alphaselected)").hide();