淡出所有嵌套的div

时间:2011-11-19 11:28:58

标签: javascript jquery html fadeout

在我的网页上,我试图像这样做:让我们说,当我们点击一​​个标识为min_reg的链接时,它会激活ID为ftr_form_cntr的div,并显示另一个div {{1 }} 内。有3-4个链接具有相同的功能,但在tcr_form_cntr中显示另一个div。好吧,如果用户第一次点击其中一个链接,那么没有问题。但是如果用户已经点击了(我的意思是如果已经打开ftr_form_cntr)我想要将所有现有的div嵌套到ftr_form_cntr并且淡入另一个div(或者用另一个div交换现有的div)。

看看这一行ftr_form_cntr在此行之前我需要做些什么来淡出所有嵌套的div?

我的功能看起来像这样

tcr_form_cntr.fadeIn(1000);

2 个答案:

答案 0 :(得分:3)

假设ftr_form_cntr是一个包含容器元素的jQuery选择器的字符串变量,你可以选择里面的所有div元素并将它们淡化为:

$(ftr_form_cntr + " div").fadeOut();

请查看the jQuery doco on selectors,特别是"descendant selector"

如果ftr_form_cntr不是字符串变量,但实际上是对DOM元素或其他内容的引用,则选择某些嵌套元素的另一种方法是使用.find()方法,该方法获取后代根据您提供的另一个选择器,现有jQuery对象中的元素:

$(ftr_form_cntr).find("div").fadeOut();

答案 1 :(得分:0)

您的功能可能如下所示:

$(min_reg).click(function () {
    var animated_div = $(ftr_form_cntr);
    if(animated_div.hasClass('opened')){  
        animated_div.find('div').fadeOut();
        tcr_form_cntr.fadeIn(1000);
        return;
    }
    animated_div.show().stop(true, true).animate({
        height:"170"
    },1000).addClass('opened');
    tcr_form_cntr.fadeIn(1000);
});

我做的是:

  • 缓存了您正在处理的元素$(ftr_form_cntr)),
  • 使用.find() jQuery方法获取所有想要淡出的div

有帮助吗?请确保ftr_form_cntrtcr_form_cntr都已定义,首先是,例如。选择器,但第二个必须是jQuery对象