曾经的超级明星类库jQuery未来也许不再会被前端程序猿追捧了!
添加页面元素
jQuery代码:
$('i').prepend('<div>--New Element--</div>');
JS代码:
var parent = document.querySelector(".container"); var p = document.createElement("p"); parent.prepend("Some text", p);
注意这个方法目前还是实验阶段,可能你的浏览器并不支持需要使用polyfill来使得浏览器支持
删除页面元素
jQuery代码:
$('i').remove();
JS代码:
elem.remove();
插入页面元素
jQuery代码:
$elem.before($someOtherElem);
JS代码:
elem.before(someOtherElem);
替换页面元素
jQuery代码:
$elem.replaceWith($someOtherElem);
JS代码:
elem.replaceWith(someOtherElem);
找到最近的匹配元素
jQuery代码:
$elem.closest("div");
JS代码:
elem.closest("div");
目前的浏览器支持
如果想看看浏览器对以上API的支持程度,大家可以使用caniuse来查看jquery风格的DOM操作的支持兼容性情况
淡入淡出效果
jQuery代码:
$elem.fadeIn();
CSS代码:
.thingy { display: none; opacity: 0; transition: .8s; }
JS代码:
elem.style.display = "block"; requestAnimationFrame(() => elem.style.opacity = 1);
只绑定一次事件
jQuery代码
$elem.one("click", someFunc);
JS代码(过去使用的方式)
function dostuff() { alert("some stuff happened"); this.removeEventListener("click", dostuff); } var button = document.querySelector("button"); button.addEventListener("click", dostuff);
JS代码(现代使用的简化版本)
elem.addEventListener('click', someFunc, { once: true, });
或者
elem.addEventListener('click', myClickHandler, { once: true, capture: true });
动画效果
jQuery
$elem.animate({ width: "20%", opacity: 0.1, marginLeft: "0.6in", fontSize: "3em", borderWidth: "10px" }, 500);
JS
var elem = document.querySelector('.animate-me'); elem.animate([ { transform: 'translateY(-1000px) scaleY(2.5) scaleX(.2)', transformOrigin: '50% 0', filter: 'blur(40px)', opacity: 0 }, { transform: 'translateY(0) scaleY(1) scaleX(1)', transformOrigin: '50% 50%', filter: 'blur(0)', opacity: 1 } ], 1000);
Ajax请求处理
jQuery代码
$.ajax('https://some.url', { success: (data) => { /* do stuff with the data */ } });
JS代码
fetch('https://some.url') .then(response => response.json()) .then(data => { // do stuff with the data });
当然上面有部分JS代码在浏览器中执行的可能并不完整,但是基本所有的javascript都可以找到对应的polyfill来解决相关的兼容性问题,如下:
<script src="https://cdn.polyfill.io/v2/polyfill.min.js"></script>
相关推荐
EdwardSiCong 2020-11-23
85477104 2020-11-17
hhanbj 2020-11-17
81427005 2020-11-11
seoppt 2020-09-13
honeyth 2020-09-13
WRITEFORSHARE 2020-09-13
84483065 2020-09-11
momode 2020-09-11
85477104 2020-08-15
83510998 2020-08-08
82550495 2020-08-03
tthappyer 2020-08-03
84901334 2020-07-28
tthappyer 2020-07-25
TONIYH 2020-07-22
tztzyzyz 2020-07-20
83510998 2020-07-18
81463166 2020-07-17