文章出處
文章列表
添加頁面元素
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>
文章列表
全站熱搜