有条件地选择显示/隐藏项目

时间:2013-01-11 08:23:50

标签: jquery selection parent-child

我有这个条件选择通常工作正常,但我想做一些小调整。查看我的fiddle here

如果你选择一个品牌,比如Apple,你可以选择两个型号。如果您选择一个模型,它可以正常工作。

但是(a)如果再次单击“选择型号”(仍然在第一个框中选择“Apple”),我想像以前一样显示所有Apple项目。

并且(b)如果您选择另一个Apple型号,则没有任何反应。

我想解决方案是在if ($currentSelection != "showall") {}声明中,但我无法让它发挥作用。

有人能指出我正确的方向吗?

感谢。

1 个答案:

答案 0 :(得分:1)

我已更新了您的jsfiddle

你缺乏一些条件:

if ($currentSelection != "showall") {
  $options.each(function(){
    if($(this).is("#"+$currentSelection)) //Show match
      $(this).parent().parent().fadeIn();
  });
  $options.not("#" + $currentSelection).parent().parent().fadeOut(); //Hide don't match
} else if($currentSelection == "showall"){ //If 'Select model'
  $options.parent().parent().fadeIn();
} else {
  $options.children().filter("." + $selectprod.val()).fadeIn();
}

如果选择了模型,则需要先显示所有选项,以便显示隐藏选项。