如果你只需要针对现代浏览器,很多功能使用原生的 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

使用原生JavaScript的更多相关文章

  1. 原生javascript 实现 animate

    原生javascript 实现 animate //animate function getstyle(obj,name){ if(obj.currentStyle){ return obj.curr ...

  2. 浅谈 原生javaScript&&react 实现全局触摸按钮(附带对addeventlistener的了解)

    1.采用原生javaACript 实现全局触摸按钮 首先在控制台输出,观察事件有哪些关于触摸的字段可以使用,然后拿这些字段的数据开始来写方法. 因为要做的是全局触摸按钮,我需要拿到的是按钮时时的坐标位 ...

  3. 你可能不需要 jQuery!使用原生 JavaScript 进行开发

    很多的 JavaScript 开发人员,包括我在内,都很喜欢 jQuery.因为它的简单,因为它有很多丰富的插件可供使用,和其它优秀的工具一样,jQuery 让我们开发人员能够更轻松的开发网站和 We ...

  4. 原生JavaScript技巧大收集(11~20)-(终于又被我找到这篇文章了)

    11.原生JavaScript加入收藏夹 function AddFavorite(sURL, sTitle) { try { window.external.addFavorite(sURL, sT ...

  5. 原生javascript加载运行

    原生javascript加载运行 (function(){ //TODO sometings }()); 在要运行相应代码的位置加入script标签,创建函数并自执行; 关于window.onload ...

  6. 原生javascript模仿win8等待进度条。

    一.序言 一直很中意win8等待提示圆圈进度条.win8刚出来那会,感觉好神奇!苦于当时没思路,没去研究.通过最近网上找找资料,终于给搞出来了!先上Demo,献丑了!预览请看:win8进度条. 二.简 ...

  7. 表单美化-原生javascript和jQuery单选按钮(兼容IE6)

    最近很多人问怎么美化表单的元素,大家都知道表单元素在各个浏览器中的表现不一,反正也是特别的丑,那么问题就来了,我们能自己设计表单元素的外观么?答案是可以的,现在我们就来试试吧.我们用两种方式来实现这一 ...

  8. javascript学习-原生javascript的小特效(原生javascript实现链式运动)

    以下代码就不详细解析了,在我之前的多个运动效果中已经解析好多次了,重复的地方这里就不说明了,有兴趣的童鞋可以去看看之前的文章<原生javascript的小特效> <!DOCTYPE ...

  9. javascript学习-原生javascript的小特效(多个运动效果整理)

    以下代码就不详细解析了,在我之前的多个运动效果中已经解析好多次了,重复的地方这里就不说明了,有兴趣的童鞋可以去看看之前的文章<原生javascript的小特效> <!DOCTYPE ...

  10. 原生javascript开发仿微信打飞机小游戏

    今天闲来无事,于是就打算教一个初学javascript的女童鞋写点东西,因此为了兼顾趣味性与简易程度,果断想到了微信的打飞机小游戏.. 本来想用html5做的,但是毕竟人家才初学,连jquery都还不 ...

随机推荐

  1. 双系统下利用MbrFix.exe卸载LINUX系统

    前言:  不少同学笔记本都装的有双系统,一般都是LIUNX和WINDOWS的两个系统(由于以前对电脑各种无知)装了双系统,再次,小编就不在阐述双系统地各种不便,再次就强调一下,假若要卸载LINUX的话 ...

  2. 代码实现native2assci

    public static void main(String[] args) { String unicode = ""; String s="用户名"; ch ...

  3. cocos2dx 2.0+ 版本,IOS6.0+设置横屏

    使用cocos2dx 自带的xcode模板,是不能正常的设置为横屏的. 一共修改了三个地方: 在项目属性中:Deployment Info中,勾选上 Landscape left,以及 Landsca ...

  4. Spark系列—01 Spark集群的安装

    一.概述 关于Spark是什么.为什么学习Spark等等,在这就不说了,直接看这个:http://spark.apache.org, 我就直接说一下Spark的一些优势: 1.快 与Hadoop的Ma ...

  5. IT服务系统组成

    软件+硬件+数据 + 运维人员 = IT服务系统 车 司机 乘客 修车 = 车模式 效率 系统 用户 业务 运维 = 信息化 效率 如果司机不会开车,没有人会修车就不会有车轮上的世界 同样没有人会运维 ...

  6. hibernate3连oracle的各种坑。。

    坑一:驱动错误导致sql查询不了,升级驱动到最新版即可 2.通过构造函数封装数据时,如果报错无法实例化并且不是因为字段不对应导致的,可以试试把float改为Float之类的包装类

  7. SQL 基本(Head First)

    CREATE TABLE my_contacts( last_name VARCHAR(30), first_name VARCHAR(30), email VARCHAR(50), gender C ...

  8. Hibernate O/R Mapping模拟

    作为SSH中的重要一环,有必要理解一下Hibernate对 O/R Mapping的实现. 主要利用java的反射机制来得到完整的SQL语句. 准备工作: 1. Object Student实体类: ...

  9. String str=new String("a")和String str = "a"有什么区别?

    问:String str=new String("a")和String str = "a"有什么区别? 答:String str = "a" ...

  10. Java正则表达式匹配例子

    Java正则表达式匹配例子 package com.ibm.test; import java.util.regex.Matcher; import java.util.regex.Pattern; ...