前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手写一个简单的JQuery

手写一个简单的JQuery

作者头像
用户1215919
发布2021-12-28 12:45:52
4920
发布2021-12-28 12:45:52
举报
文章被收录于专栏:大大的微笑大大的微笑

测试样本

为什么jq 使用$(selector)就能够获取DOM呢
原生的js该怎么实现
代码语言:javascript
复制
//事实证明通过如下方式不管传入的是id选择器还是class选择器都是可行的 
document.querySelectorAll(selector)
获取DOM中的第几个元素
代码语言:javascript
复制
// 因为我们获取到的是一个NodeList数组,那么当然可以通过下标获取(注意不要越界)
document.querySelectorAll(selector)[0]
给元素添加class
代码语言:javascript
复制
// 添加完毕以后查看DOM结构的class中就多了一个class属性world
document.querySelectorAll(".hello").forEach(d=>{
    d.classList.add("world")
})
添加css属性
代码语言:javascript
复制
// 我们希望给每一个元素添加上宽、高、颜色几个属性
let css = {
    "width": "2rem",
    "height": "1rem",
    "color": "red"
  }
document.querySelectorAll(".hello").forEach(d=>{
      Object.keys(css).map(k =>{
        d.style[k] = css[k];
      });
    })

上面的方式看起来比较麻烦,每次都要调用,如何做到只调用一次即可实现并且像jq那样做到链式调用。

改良之后
jQuery初体验

通过上述的一顿操作可以实现链式调用,越来越像那么回事了。

我们希望将更多的细节封装在对象的内部
从使用上来看,越来越有jQuery的感觉了

换成es6语法进行简单的封装以后,发现依然可以实现,而且结构越来越清晰了呢,另外对于html、text等方法没有实现。可以自己尝试弄一哈

手动试一下,敲一遍加深记忆,为了防止复制粘贴尽量都换成图片给大家练练手啦

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么jq 使用$(selector)就能够获取DOM呢
  • 原生的js该怎么实现
  • 获取DOM中的第几个元素
  • 给元素添加class
  • 添加css属性
  • 改良之后
  • jQuery初体验
  • 我们希望将更多的细节封装在对象的内部
  • 从使用上来看,越来越有jQuery的感觉了
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档