使用原生JavaScript
如果你只需要针对现代浏览器,很多功能使用原生的 JavaScript 就可以实现。
DOM Selectors
//jQuery var ele = $("#id .class");
//native javascript var ele = document.querySelectorAll("#id .class");
//or native javascript var ele1 = document.getElementById("id"); var ele = ele1.getElementsByClassName("ele1");
DOM 操作
Create elements
//jQuery var newEl = $('<div />');
//native javascript var newEl = document.createElement('div');
Append
//jQuery #("#container").append("<span>content</span>");
//native javascript var span = document.createElement("span"); span.appendChild(document.createTextNode("content")); document.getElementById("container").appendChild(span);
//or native javascript, jQuery uses the native innerHTML method document.getElementById("container").innerHTML += "<span>content</span>";
remove all child nodes
//jQuery $("container").empty();
//The native equivalent using innerHTML document.getElementById("container").innerHTML = null;
//or native javascript using removeChild var c = document.getElementById("container"); while(c.lastChild) c.removeChild(c.lastChild);
remove the whole elemet from the DOM
//jQuery $("#container").remove();
//native javascript var c = document.getElementById("container"); c.parentNode.removeChild(c);
Clone the whole element from the DOM
//jQuey var cloneEl = $("#container").clone();
//native javasript var cloneEl = document.getElementById("container").cloneNode(true);
parent
//jQuery $('#el').parent();
//ntive javascript document.getElementById('el').parentNode;
prev/next element
//jQuery $("#el").prev(); $("#el").next();
//native javascript document.getElementById("el").previousElementSibling; document.getElementById("el").nexElementSibling;
css manipulation
class manipulation
//jQuery $("#ele").addClass("myclass");$("#ele").removeClass("myclass");$("#ele").toggleClass("myclass");
//native javascript function addClasses(node, cla){if(!node.length) node = [node];for(var n=0,m=node.length;n<m;n++){if((" "+node[n].className+" ").indexOf(" "+cla+" ") <0){node[n].className += " "+cla;}} }function removeClass(node, cla){if(!node.length) node = [node];for(var n=0,m=node.length;n<m;n++){if((" "+node[n].className+" ").indexOf(" "+cla+" ") >= 0){node[n].className = (" "+node[n].className+" ").replace(" "+cla+" ", " ").replace( /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "" );}}} //remove myclass to all nodes removeClass(document.querySelectorAll("p"), "myclass");function toggleClass(node, cla){if(!node.length) node = [node];for(var n=0,m=node.length;n<m;n++){if((" "+node[n].className+" ").indexOf(" "+cla+" ") >= 0){node[n].className = (" "+node[n].className+" ").replace(" "+cla+" ", " ").replace( /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "" );}else{node[n].className += " "+cla;}} } //toggle myclass to all nodes toggleClass(document.querySelectorAll("p"), "myclass");
//or native javascript using classList document.getElementById("ele").classList.add("myclass");document.getElementById("ele").classList.remove("myclass");document.getElementById("ele").classList.toggle("myclass");
style manipulation
//jQuery $("#ele").css({color: "#c00" })
//native javascript var ele = document.getElementById("ele"); ele.style.color = "#c00";
set/get attribute
//jQuery $('#ele').attr('key', 'value'); $('#ele').attr('key');
//native javascript document.getElementById("ele").setAttribute('key', 'value'); document.getElementById("ele").getAttribute("key");
event handling
document ready
//jQuery $(start)
//native javascript document.addEventListener("DOMContentLoaded", start);
forEach
//jQuery $("p").each(function(i){console.log("index " + i + ": " + this); });
//native javascript [].forEach.call(document.getElementsByTagName("p"),function(obj,i){consol.log("index "+i+": "+obj)})
Events
//jQuery $('.el').on('event', functio(){});
//Native javascript [].forEach.call(document.querySelectorAll('.el'), function(el){el.addEventListener('event', function(){}, false); });
Ajax
//jQuery $.get('url', function(data){ }); $.post('url', {data: data}, function(data){});
//native javascript //get var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.onreadystatechange = function(){} xhr.send(); //post var xhr = new XMLHttpRequest(); xhr.open('POST', url, true); xhr.onreadystatechange = function(){} xhr.send({data: data});
相关文章:
Native JavaScript Equivalents of jQuery Methods: the DOM and Forms
Native JavaScript Equivalents of jQuery Methods: Events, Ajax and Utilities
转载于:https://www.cnblogs.com/huanghongxia/p/4118046.html
使用原生JavaScript相关推荐
- 分享10个原生JavaScript技巧
首先在这里要非常感谢无私分享作品的网友们,这些代码片段主要由网友们平时分享的作品代码里面和经常去逛网站然后查看源文件收集到的.把平时网站上常用的一些实用功能代码片段通通收集起来,方便网友们学习使用,利 ...
- animate用法 js原生_用 原生Javascript 创建带动画的固顶导航菜单
当我们在网页中加入一个导航菜单的时候,需要考虑很多因素.如何确定它的位置?如何定义样式?还需要保证它具有良好的响应性.又或者你想为它添加一些炫酷的动画.这时你可能会对 jQuery 感兴趣,因为它会帮 ...
- mysql插入ㄖ_原生JavaScript代码100个实例
1.原生JavaScript实现字符串长度截取 function cutstr(str, len) { var temp; var icount = 0; var patrn = /[^\x00-\x ...
- java文件异步上传_[Java教程]原生javascript实现文件异步上传
[Java教程]原生javascript实现文件异步上传 0 2017-10-25 19:00:06 效果图: 代码:(demo33.jsp) demo33.jsp名称文件确定 本文网址:http:/ ...
- [译] 原生 JavaScript 值得学习吗?答案是肯定的
原文地址:Is Vanilla JavaScript worth learning? Absolutely. 原文作者:David Kopal 译文出自:掘金翻译计划 本文永久链接:github.co ...
- React jsx转换成原生JavaScript的一个例子
jsx代码: var React = require('react'); var ReactDOM = require('react-dom'); var MyButtonController = r ...
- 原生希望原生JavaScript开篇
本篇文章个人在深圳游玩的时候突然想到的...最近就有想写几篇关于原生希望的文章,所以回家到之后就奋笔疾书的写出来发布了 一直对前端技巧很有兴致,就心生了写一个专栏的动机,然后就申请了原生JavaScr ...
- 一些常用且实用的原生 JavaScript函数[转]
日常开始中常用到的一些原生JavaScript函数,比较实用, 今天特地整理一下,分享给大家,希望对大家有用,会常更新,同时也欢迎大家补充. css及html方面的技巧总结,点此前往: 前端开发中一些 ...
- 原生JavaScript轮播图效果实现
原生JavaScript实现轮播图切换效果的实现过程 本文所用代码仅供个人学习.此部分代码系按原腾讯电脑管家首页的轮播图效果,采用原生JS技术予以实现(原网页采用jQurey等技术). 1. 文件准备 ...
- 非常不错的一款html5【404页面】,不含js脚本可以左右摆动,原生JavaScript实现日历功能代码实例(无引用Jq)...
这篇文章主要介绍了原生JavaScript实现日历功能代码实例(无引用Jq),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 成品显示,可左右切换月份 ...
最新文章
- qchart 图表_Qt下绘制图表——QtCharts版
- 中断锁与信号量的一种使用场景
- Linux交换Esc和Caps
- word List 31
- jquery实现页面提示,数据正在加载中。(
- Spring MVC 无XML配置入门示例
- 理想汽车10月份新增12家直营交付中心 蔚来第1000座充电站上线
- 服务器主板的无线驱动,驱动天空 - 品牌主板 - 服务器主板 SERVER
- YUV和RGB格式分析
- C# 插入、删除Excel分页符
- 2021年CKA考试真题(二)
- Win10将用户名修改为英文
- PyQt5整合Scrapy和matplotlib实现可视化爬虫by墨阳剑(二)
- Python 入门学习路线
- Codeforces Beta Round #14 (Div. 2) E. Camels
- Openlayers设置ESPG900913作为影射算法
- 软考-软件设计师 笔记一(计算机组成与体系结构)
- oracle 安装后密码,oracle 11g 安装后默认密码
- 饥荒更多食物制作mod食谱_您如何看待您附近的更好的食物?
- 熟能生巧 汽车停车入位技巧解析-倒车入库--侧边停车
热门文章
- 栈和队列都是什么结构_数据结构与算法之初识栈与队列
- 坚式计算机在线,小学数学竖式计算器
- linux 系统迁移到固态硬盘,windows 和 Linux 系统 从硬盘迁移到SSD
- 运维基础(2)实用工具篇
- vue展示日历 考勤展示_VUE实战—菜单栏商品展示数据交互(8)
- 今年最火的 Golang 云原生开源项目,可能就是它了!
- 从零开始入门 K8s | Kubernetes API 编程范式
- html网页自动铺满屏幕,如何使HTML元素的区域铺满全屏
- java 两个日期的天数_java计算两个日期之间的天数
- linux 设置防火墙ssh,centos 8 ssh命令(服务器设置、防火墙配置等)