jquery函数真的是链式的吗?
有人告诉我 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果元素未公开 <,removeClass() 将不会失败代码>step-dark-left类。它不会执行任何操作并返回 jQuery 对象,因此 addClass() 将始终被调用。
因此,您必须保留
if
语句,除非您可以在 jQuery 选择器本身中进行类检查。例如,如果您的元素的
id
属性设置为cDiv
:这样,如果元素不会公开
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 itsid
attribute set tocDiv
:That way, the jQuery object will be empty if the element doesn't expose the
step-dark-left
class to begin with, so bothremoveClass()
andaddClass()
will end up doing nothing in that case.是的,您编写的代码将像第一个示例一样工作。 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.
是的,那会起作用的。如果找不到step-dark-left,它将被忽略。
Yes that will work. If step-dark-left cannot be found it will be just ignored.