$('.myclass').show().addClass('selected')含义及show()后调用addClass的原因
代码含义与链式调用原理说明
1. $('.myclass').show().addClass('selected')的含义
这是典型的jQuery链式调用写法,执行逻辑依次为:
- 先用
$('.myclass')选中页面上所有带有myclass类名的DOM元素,得到jQuery包装对象 - 调用
show()方法,把选中的所有元素设置为可见状态(一般是把元素的displayCSS属性恢复为它原本的可见值,比如block、inline等) - 最后调用
addClass('selected'),给已经显示的这批元素新增selected类名,后续可以通过这个类名控制选中态样式,或者做其他逻辑判断
2. 链式调用的实现逻辑
几乎所有jQuery的操作类方法默认都支持链式调用,你没在文档里看到show()的返回值说明,不代表它没有返回值:
只要不是用于读取数据的getter类方法(比如.val()取输入框内容、.text()取元素文本、.attr()取属性值这类需要返回业务数据的方法),其他所有修改类的方法,执行完都会把当前的jQuery包装对象本身作为返回值返回。
所以你调用show()之后拿到的还是最开始选中的那批元素的jQuery对象,当然可以直接在这个返回值上继续调用属于jQuery实例的addClass()方法,不用重复写选择器查询DOM,既简化代码也能降低性能开销。
内容的提问来源于stack exchange,提问作者alancc
相关产品推荐
相关产品推荐

