原生JS取代一些JQuery方法的简单实现

前端之家收集整理的这篇文章主要介绍了原生JS取代一些JQuery方法的简单实现前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1.选取元素

// Native
var els = document.querySelectorAll('.el');

// Shorthand
var $ = function (el) {
return document.querySelectorAll(el);
}

querySelectorAll方法返回的是NodeList对象,需要转换为数组。

2.创建元素

');

// Native
var newEl = document.createElement('div');

3.添加事件

});

// Native
[].forEach.call(document.querySelectorAll('.el'),function (el) {
el.addEventListener('event',function() {

},false);
});

4.get/set属性

// Native
document.querySelector('.el').setAttribute('key','value');
document.querySelector('.el').getAttribute('key');

5.添加和移除样式Class

DOM元素本身有一个可读写的className属性,可以用来操作class。

HTML 5还提供一个classList对象,功能更强大(IE 9不支持)。

// Native
document.querySelector('.el').classList.add('class');
document.querySelector('.el').classList.remove('class');
document.querySelector('.el').classList.toggle('class');

6.追加元素

尾部追加元素:

'));

// Native
document.querySelector('.el').appendChild(document.createElement('div'));

头部追加元素:

')

//Native
var parent = document.querySelector('.el');
parent.insertBefore("

",parent.childNodes[0])

7.克隆元素

// Native
var clonedEl = document.querySelector('.el').cloneNode(true);

8.移除元素

// Native
remove('.el');

function remove(el) {
var toRemove = document.querySelector(el);

toRemove.parentNode.removeChild(toRemove);
}

9.获取父级元素

// Native
document.querySelector('.el').parentNode;

10.获取上一个/下一个元素(Prev/next element)

// Native
document.querySelector('.el').prevIoUsElementSibling;
document.querySelector('.el').nextElementSibling;

11.XHR and AJAX

});
$.post('url',{data: data},function (data) {

});

// Native

// get
var xhr = new XMLHttpRequest();

xhr.open('GET',url);
xhr.onreadystatechange = function (data) {

}
xhr.send();

// post
var xhr = new XMLHttpRequest()

xhr.open('POST',url);
xhr.onreadystatechange = function (data) {

}
xhr.send({data: data});

12.清空子元素

//Native
var element = document.getElementById("elementID")
while(element.firstChild) element.removeChild(element.firstChild);

13.检查是否有子元素

//Native
if (document.getElementById("elementID").hasChildNodes()){}

14.$(document).ready

DOM加载完成,会触发DOMContentLoaded事件,等同于jQuery的$(document).ready方法

15.数据储存

jQuery对象可以储存数据。

HTML 5有一个dataset对象,也有类似的功能(IE 10不支持),不过只能保存字符串。

score = score;

16.动画

jQuery的animate方法,用于生成动画效果

jQuery的动画效果,很大部分基于DOM。但是目前,CSS 3的动画远比DOM强大,所以可以把动画效果写进CSS,然后通过操作DOM元素的class,来展示动画。

如果需要对动画使用回调函数,CSS 3也定义了相应的事件。

以上就是小编为大家带来的原生JS取代一些JQuery方法的简单实现的全部内容了,希望对大家有所帮助,多多支持编程之家~

原文链接:https://www.f2er.com/jquery/45707.html

猜你在找的jQuery相关文章