jquery函数真的是链式的吗?

发布于 2024-11-25 05:14:30 字数 386 浏览 1 评论 0原文

有人告诉我 jquery 函数可以相互链接。

所以我想知道这段代码是否

if (cDiv.hasClass('step-dark-left'))
    cDiv.removeClass('step-dark-left').addClass('step-light-left');

可以通过删除 if 来更改,如下所示:

cDiv.removeClass('step-dark-left').addClass('step-light-left');

因此,如果 .removeClass 失败,则 .addClass 不会执行?

I have been told that jquery functions can be chained to each other.

So I was wondering if this code:

if (cDiv.hasClass('step-dark-left'))
    cDiv.removeClass('step-dark-left').addClass('step-light-left');

Could be changed by removing the if like so:

cDiv.removeClass('step-dark-left').addClass('step-light-left');

So, if .removeClass fails, then .addClass wont execute?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

亚希 2024-12-02 05:14:30

如果元素未公开 <,removeClass()不会失败代码>step-dark-left类。它不会执行任何操作并返回 jQuery 对象,因此 addClass() 将始终被调用。

因此,您必须保留 if 语句,除非您可以在 jQuery 选择器本身中进行类检查。例如,如果您的

元素的 id 属性设置为 cDiv

$("#cDiv.step-dark-left").removeClass("step-dark-left")
                         .addClass("step-light-left");

这样,如果元素不会公开 step-dark-left 类,因此 removeClass()addClass() 最终都会执行在那种情况下什么也没有。

removeClass() will not fail if the element doesn't expose the step-dark-left class. It will just do nothing and return the jQuery object, therefore addClass() will always be called.

So, you'll have to keep your if statement around, unless you can work the class check in the jQuery selector itself. For instance, if your <div> element has its id attribute set to cDiv:

$("#cDiv.step-dark-left").removeClass("step-dark-left")
                         .addClass("step-light-left");

That way, the jQuery object will be empty if the element doesn't expose the step-dark-left class to begin with, so both removeClass() and addClass() will end up doing nothing in that case.

末蓝 2024-12-02 05:14:30

是的,您编写的代码将像第一个示例一样工作。 jQuery 是一个写得很好的库,所有方法都返回 jquery 对象。因此,removeClass() 方法,如果它没有找到“step-dark-left”CSS 类,它不会执行任何操作并返回 jquery 对象,因此链中的下一个方法将起作用。

Yes, the code you write will work as in first example. jQuery is very well written library, and all methods always return the jquery object. So removeClass() method, if it doesn't find a 'step-dark-left' CSS-class, it just would do nothing and return the jquery object so next method in the chain will work.

断桥再见 2024-12-02 05:14:30

是的,那会起作用的。如果找不到step-dark-left,它将被忽略。

Yes that will work. If step-dark-left cannot be found it will be just ignored.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文