【问题标题】:Conditional Statement as Hierarchy jQuery条件语句作为层次结构 jQuery
【发布时间】:2010-04-02 10:18:14
【问题描述】:

有没有办法让 jQuery 在条件语句中使用对象作为层次结构中的对象。例如,我想验证某些东西是否存在,然后告诉它只使用 this 选择器来做某事。

这样

if ($(".tnImg").length) {

//我必须在这里声明我的目标对象才能让它工作

            $(this).animate({
            opacity: 0.5,   
            }, 200 );
  }

有没有办法让 jQuery 做到这一点? 我想没有什么太大的好处,但我还是很好奇

【问题讨论】:

    标签: jquery object css-selectors hierarchy


    【解决方案1】:

    在jQuery中,如果什么都没有找到,那么什么都不会发生,例如:

    $(".tnImg").animate({ opacity: 0.5 }, 200 );
    

    这不会出错,如果它没有找到任何带有class="tnImg" 的东西,它就不会在任何元素上运行。这是使 jQuery 如此简洁的基本原理之一 :)

    如果您想对对象做很多事情,这将让您将其用作$(this) 来处理每个对象:

    $(".tnImg").each(function() {
      //$(this) is the current class="tnImg" element, this code runs for each one
      $(this).animate({ opacity: 0.5 }, 200 );
    });
    

    【讨论】:

    • 好的,所以你说我可以使用每个功能,而不是找出它是否存在。并且代码仍然可以工作。然后我可以使用层次结构。现在假设我是否有更多的动画函数参数以及每个事件具有不同动画的多个事件。如果我使用 each 函数,它将绕过回调中的代码,而不是在元素不存在时运行代码。
    • @Jacob - 你能发布一个你想要做什么的例子吗?仅仅说明如何做一个例子通常更容易:) 如果你调用一个动画,回调会针对动画的 each 元素运行(它们都单独动画)。如果选择器没有找到任何元素,那么没有任何元素是动画的,并且回调甚至不会运行一次,有意义吗?
    • @Jacob - 没问题,这就是 SO 的目的,如果您有更多问题,请随意,如果可以,我会回答。
    猜你喜欢
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 2017-07-14
    相关资源
    最近更新 更多