一直都想写博客来记录自己工作学习中遇到的问题,奈何一直都没有找到好的题目(就是懒)
jQuery作为我接触的框架中功能最多,资质也相对更老的框架大哥,它提供很多选择器和方法,虽然现在快要被vue,react拍到沙滩上,不过我相信还是大部分前端工程师的初恋。
先说下写这篇博客的动机
最近不是很忙,随意在对刚实习的代码进行review,嗯,无论是样式,还是命名都十分辣眼,但有一个问题引起我的注意,对于jQuery中,“#” or “.”这两个选择器到底有什么规范,毕竟我之前都是乱用的,因为id实在是太好用了。
对于id 和 class的区别就不多说了 head first 里写的real清晰,哦,稍微提一下,id的权重要比class高,在编写css中可能要注意一下,不过这次主要研究的是jQuery,就先不讨论惹。
在操作DOM节点中有两个类似的方法:
getElementById()和getElementByClassName(),
后者在IE8及更早版本的浏览器是不支持的,而$(".class")调用的就是本地document.getElementByClassName(),在
$("#id")无疑是提升选择性能的最佳方式,但id作为唯一标识(类似身份证),给每一个要选择的元素增加id无疑提高了代码冗余度及规范性,对于强迫症患者简直是灾难,因而jQuery提供了一个非常大的方法 :find()
利用$("#id").find("tag")方法即可精确定位到你想要找的元素,同时缩小节点查询范围,性能提升大大滴。
经常在查阅资料时看到这样一句话 定义样式用#,定义方法用id,现在看来不无道理。
总结来说大概两句话,
在操作节点时尽量使用ID选择器同时尽量给选择器指定上下文。
避免在$(.id)前增加其他操作,因为他已经是性能最优的选择。
哦还有一个id和class命名的问题,我一直都是字母小写+"_"命名的,不过在查看Bootstrap 编码规范时注意到,class命名应该以小写+“-”命名,id的话可以选择小写字母+“_”,这样看起来就比较规范啦。
网友评论