jQuery的原生替代
jQuery的原生替代,参考自你不需要jQuery,对其进行了更清晰的总结与分类,现代游览器基本都支持(ie10+以上),只整理了最简洁实用的原生代码,过分累赘的实现没有加入
元素获取
jQuery | 原生 |
---|---|
$(selector) | document.querySelectorAll(selector) |
$(el).find(selector) | el.querySelectorAll(selector) |
$(el).prev() | el.previousElementSibling |
$(el).next() | el.nextElementSibling |
$(el).first() | el.firstElementChild |
$(el).last() | el.lastElementChild |
$(el).parent() | el.parentNode |
$(el).offsetParent() | el.offsetParent |
$(el).children() | el.children |
$(el).siblings() | Array.prototype.filter.call(el.parentNode.children, child => child !== el) |
dom操作
jQuery | 原生 |
---|---|
$(el).before(htmlString) | el.insertAdjacentHTML('beforebegin', htmlString) => el.before(string) |
$(el).after(htmlString) | el.insertAdjacentHTML('afterend', htmlString) => el.after(string) |
$(parent).prepend(el) | parent.insertBefore(el, parent.firstChild) => el.prepend(htmlString) |
$(parent).append(el) | parent.appendChild(el) => el.append(htmlString) |
$(el).remove() | el.parentNode.removeChild(el) => el.remove() |
$(el).clone() | el.cloneNode(true) |
$(el).empty() | el.innerHTML = '' |
$(el).replaceWith(string) | el.outerHTML = string |
$(el).html(string) | el.innerHTML = string |
$(el).text(string) | el.textContent = string |
$(el).val(string) | el.value = string |
$(el).html() | el.innerHTML |
$(el).text() | el.textContent |
$(el).val() | el.value |
样式操作
jQuery | 原生 |
---|---|
$(el).hasClass(className) | el.classList.contains(className) |
$(el).addClass(className) | el.classList.add(className) |
$(el).removeClass(className) | el.classList.remove(className) |
$(el).toggleClass(className) | el.classList.toggle(className) |
$(el).css(ruleName) | getComputedStyle(el)[ruleName] |
$(el).css('width', '20px') | el.style.width = '20px' |
属性操作
jQuery | 原生 |
---|---|
$(el).attr('title') | el.getAttribute('title') |
$(el).attr('title', string) | el.setAttribute('title', string) |
位置/尺寸
jQuery | 原生 |
---|---|
$(el).position() | { left: el.offsetLeft, top: el.offsetTop } |
$(el).offset() | el.getBoundingClientRect() |
$(el).outerWidth() | el.offsetWidth |
$(el).outerHeight() | el.offsetHeight |
$(el).scrollTop() | el.scrollTop |
$(el).scrollLeft() | el.scrollLeft |
特效
jQuery | 原生 |
---|---|
$(el).hide() | el.style.display = 'none' |
$(el).show() | el.style.display = '' |
dom载入完毕
jQuery | 原生 |
---|---|
$(方法) | document.addEventListener('DOMContentLoaded', 方法) |
jQuery的原生替代的更多相关文章
- jQuery与原生js实现banner轮播图
jQuery与原生js实现banner轮播图: (jq需自己加载)(图片需自己加载) <!DOCTYPE html> <html> <head> <meta ...
- 通过游戏认识 --- JQuery与原生JS的差异
前言 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库( 或JavaScript框架).jQuery设计的宗旨是“write ...
- 原生JS的使用,包括jquery和原生JS获取节点、jquery和原生JS修改属性的比较
一.前言 相比于JS这条直达终点.满是荆棘的小路,jquery无疑是康庄大道了,足够的简洁.易用给了它辉煌的地位.然而,毕竟是绕着道的插件,当小路走着走着变成大路的时候,曾经的大路也就失去了他自身的优 ...
- 通过案例来剖析JQuery与原生JS
首先来个例子: 我们在登陆或者注册一些网站时,如果某一项点过了但没填,鼠标移走后是不是经常看到网站有相应的红色字体提示呢? 那下面我们就以这个为例来剖析下jQuery和原生JS的一些区别,来上代码: ...
- 抛弃jQuery 深入原生的JavaScript
虽然我已经做网站建设工作10多年了,但我从最近3年才开始更多地学习如何更好的将纯JavaScript用于工作中,而不总是将jQuery考虑在第一位.现在我每天学习很多东西.这个过程让我觉得Adtile ...
- jQuery与原生JS相互转化
前端发展很快,现代浏览器原生 API 已经足够好用.我们并不需要为了操作 DOM.Event 等再学习一下 jQuery 的 API.同时由于 React.Angular.Vue 等框架的流行,直接操 ...
- 用jQuery基于原生js封装的轮播
我发现轮播在很多网站里面都用到过,一个绚丽的轮播可以为网页增色不少,最近闲来无事,也用原生js封装了一个轮播,可能不像网上的插件那么炫,但是也有用心去做.主要用了闭包的思想.需要传递的参数有:图片地址 ...
- 【jQuery、原生】键盘键入两位小数
jquery的处理办法 <!doctype html> <html lang="en"> <head> <meta charset=&qu ...
- JQuery和原生JS跨域加载JSON数据或HTML。
前提:有时候需要在网页上,加载另一个网站上的数据.或者加载另一个网站上的一个页面.Js的Ajax请求不具备跨域功能,可以使用JQuery来实现. 网页端JS代码: $(function () { $. ...
随机推荐
- Spring Boot 简介与入门(2.1.6版)
Spring Boot 2.1.6 版 与时俱进是每一个程序员都应该有的意识,当一个Java程序员在当代遍布的时候,你就该意识到能多学点什么.可观的是后端的框架是稳定的,它们能够维持更久的 ...
- centos 升级curl版本
1.安装repo rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/rhel6/x86_64/city-fan.org-release-2-1 ...
- python爬虫遇到会话存储sessionStorage
记录一次爬虫生成链接过程中遇到的sessionStorage存储数据 1.简介 sessionStorage 是HTML5新增的一个会话存储对象,用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标 ...
- rpm,yum
rpm RedHat Package Manager软件包管理器的核心功能:1.制作软件包2.安装.卸载.升级.查询.校验.数据库的重建.验证数据包等工作 安装: rpm -i /PATH/TO ...
- 01、JDBC连接
① 下载JDBC-MySQL数据库驱动 链接:https://pan.baidu.com/s/1KtSZZ5hXlxu2QrmsXg3lkA 提取码:1pbl ② 加载JDBC-MySQL数据库驱动 ...
- TouchListener PK OnTouchEvent + 多点触碰
1.基于监听的TouchListener 代码示例: 实现效果图: 实现代码: main.xml <RelativeLayout xmlns:android="http://schem ...
- MyBatis resultType用Map 返回值中有NULL则缺少字段 返回值全NULL则map为null
这个问题我大概花了2个小时才找到结果 总共需要2个设置 这里是对应springboot中的配置写法 @select("select sum(a) a,sum(b) b from XXX wh ...
- SpringBoot第二十五篇:SpringBoot与AOP
作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/11457867.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言 作者在实际 ...
- 数据存储检索之B+树和LSM-Tree
作为一名应用系统开发人员,为什么要关注数据内部的存储和检索呢?首先,你不太可能从头开始实现一套自己的存储引擎,往往需要从众多现有的存储引擎中选择一个适合自己应用的存储引擎.因此,为了针对你特定的工作负 ...
- ToShowDoc拯救不想写文档的你
ToShowDoc拯救不想写文档的你 写注释已经够折磨开发者了,显然天天curd的我们再去写文档岂不是分分种要被逼疯. 我想每个人都有这种经历 加了一个参数文档忘了更新 参数名更改文档忘了更新 删掉一 ...