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的原生替代的更多相关文章

  1. jQuery与原生js实现banner轮播图

    jQuery与原生js实现banner轮播图: (jq需自己加载)(图片需自己加载) <!DOCTYPE html> <html> <head> <meta ...

  2. 通过游戏认识 --- JQuery与原生JS的差异

      前言 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库( 或JavaScript框架).jQuery设计的宗旨是“write ...

  3. 原生JS的使用,包括jquery和原生JS获取节点、jquery和原生JS修改属性的比较

    一.前言 相比于JS这条直达终点.满是荆棘的小路,jquery无疑是康庄大道了,足够的简洁.易用给了它辉煌的地位.然而,毕竟是绕着道的插件,当小路走着走着变成大路的时候,曾经的大路也就失去了他自身的优 ...

  4. 通过案例来剖析JQuery与原生JS

    首先来个例子: 我们在登陆或者注册一些网站时,如果某一项点过了但没填,鼠标移走后是不是经常看到网站有相应的红色字体提示呢? 那下面我们就以这个为例来剖析下jQuery和原生JS的一些区别,来上代码: ...

  5. 抛弃jQuery 深入原生的JavaScript

    虽然我已经做网站建设工作10多年了,但我从最近3年才开始更多地学习如何更好的将纯JavaScript用于工作中,而不总是将jQuery考虑在第一位.现在我每天学习很多东西.这个过程让我觉得Adtile ...

  6. jQuery与原生JS相互转化

    前端发展很快,现代浏览器原生 API 已经足够好用.我们并不需要为了操作 DOM.Event 等再学习一下 jQuery 的 API.同时由于 React.Angular.Vue 等框架的流行,直接操 ...

  7. 用jQuery基于原生js封装的轮播

    我发现轮播在很多网站里面都用到过,一个绚丽的轮播可以为网页增色不少,最近闲来无事,也用原生js封装了一个轮播,可能不像网上的插件那么炫,但是也有用心去做.主要用了闭包的思想.需要传递的参数有:图片地址 ...

  8. 【jQuery、原生】键盘键入两位小数

    jquery的处理办法 <!doctype html> <html lang="en"> <head> <meta charset=&qu ...

  9. JQuery和原生JS跨域加载JSON数据或HTML。

    前提:有时候需要在网页上,加载另一个网站上的数据.或者加载另一个网站上的一个页面.Js的Ajax请求不具备跨域功能,可以使用JQuery来实现. 网页端JS代码: $(function () { $. ...

随机推荐

  1. loadrunner12录制手机app

    今天第一次使用LR12录制app,遇到了录制不上的问题,最终解决了,记录一下 我安装的版本是12.02社区版   HP_LoadRunner_12.02_Community_Edition_T7177 ...

  2. Maven 梳理 -聚合与继承

    一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1.聚合配置代码 1 <modules> 2 <module>模块一</module&g ...

  3. c# 9.0 特性提案 简化空参数验证代码

    简而言之就是将已存在的特性null参数验证,使用一个简单的语义标注进一步简化. 对于如下这段代码 // Before void Insert(string s) { if (s is null) { ...

  4. linux分析利刃之sar命令详解

    一.sar的概述 在我使用的众多linux分析工具中,sar是一个非常全面的一个分析工具,可以比较瑞士军刀,对文件的读写,系统调用的使用情况,磁盘IO,CPU相关使用情况,内存使用情况,进程活动等都可 ...

  5. ORM增删改查

    目录 orm django 连接mysql顺序 1 settings配置文件中 2 项目文件夹下的init文件中写上下面内容, 补充 3 models文件中创建一个类(类名就是表名) 4.执行数据库同 ...

  6. python pytesseracct WinError2

    接上一个3步图像识别,本来已经在两台电脑同样的操作3步都可以识别出验证码,但是今天在新电脑同样的步骤却出现了winerror2,泪崩. 一样的配方,不一样的结果. 后来发现是调用不到tesseract ...

  7. Python 正则re匹配中文、英式数字

    #coding:utf-8 import re s = u''' 或多或少的好好读书电锯惊魂20202 和水电费后是否会时候1212没收到风10.12海大富的是粉红色的和办法的1244525.000 ...

  8. 列表 元祖 range

    1.列表 list 存放一些数据的容器 比如 衣柜 书包 作用:存储一些数据,数据量比较大 可以下标 可以切片 可以步长 和字符串的完全一样 lst = [1,2,3] print(lst) #[1, ...

  9. elasticsearch http 搜索 测试

    1.查询所有的documents http://192.168.43.45:9200/_search boost parameter 细粒度搜索条件权重控制 如:组装多个查询条件,其中一个匹配的想要优 ...

  10. windows下安装和设置gradle

    一.安装前检查 检查jdk是否已经安装 二.下载gradle 1. https://gradle.org/releases/ 2.设置gradle环境变量 3. 环境变量中增加名为GRADLE_HOM ...