Jquery:过滤功能

时间:2013-03-11 12:13:09

标签: jquery

我使用过滤函数查看类列表。如果下拉列表为空,则会添加错误样式。

问题。 如果满足条件,我想隐藏并显示其他div id,即如果所有下拉列表都包含选定值

这是我将样式添加到空下拉列表的代码

 $(".dropdown_select").filter(function(){
 return $(this).val() == "";
 }).css("border-color", "#FF0000");

但是我如何隐藏并显示另外两个div id?即只有所有下拉列表都填满,我想

$(".step-2").fadeIn("slow");
$(".step-1").fadeOut("slow");

2 个答案:

答案 0 :(得分:1)

var $children = $(".dropdown_select").children();

if($children.length === $children.filter(".dropdown_select").length) {
   $(".step-2").fadeIn("slow");
   $(".step-1").fadeOut("slow");
}

答案 1 :(得分:1)

对于样式,我建议使用带有函数参数的toggleClass()而不是filter()css()

$(document).on("change", ".dropdown_select", function () {
  var $emptyOnes = $(".dropdown_select")
                   .filter(function () { return this.value == ""; });

  if ($emptyOnes.length == 0) {
    $(".step-1").fadeOut("slow");
    $(".step-2").fadeIn("slow");
  } 

  $(this).toggleClass("empty", this.value == "");
});

其中tre CSS定义为:

.empty {
  border-color: #FF0000;
}