摘要:毫無疑問,是一款非常優(yōu)秀的庫(kù),它讓我們開發(fā)項(xiàng)目變得更加便捷容易。不過,當(dāng)你準(zhǔn)備在一個(gè)項(xiàng)目特別是移動(dòng)項(xiàng)目中使用時(shí),你真的該好好思考一下,你會(huì)用到的哪些功能,是否真的需要。
毫無疑問,JQuery是一款非常優(yōu)秀的JavaScript庫(kù),它讓我們開發(fā)項(xiàng)目變得更加便捷容易。
不過,當(dāng)你準(zhǔn)備在一個(gè)項(xiàng)目(特別是移動(dòng)項(xiàng)目)中使用JQuery時(shí),你真的該好好思考一下,你會(huì)用到JQuery的哪些功能,是否真的需要jQuery。因?yàn)殡S著JavaScript的不斷改善進(jìn)化,現(xiàn)在它內(nèi)置的功能已經(jīng)非常強(qiáng)大,在很大程度上,已經(jīng)可以實(shí)現(xiàn)以前需要在JQuery中才能實(shí)現(xiàn)的技術(shù)(如果你的項(xiàng)目需要在IE8之前的瀏覽器中使用,建議還是使用JQuery,這樣可以省卻很多兼容性問題)。
下面將列出一些可以使用JavaScript來實(shí)現(xiàn)JQuery功能的代碼:
1、查找搜索選擇器
按ID查找:
$("#test") => document.getElementById("test");
按class類名查找:
$(".test") => document.getElementsByClassName("test")
按標(biāo)簽名查找:
$("div") => document.getElementsByTagName("div")
當(dāng)然,你也可以統(tǒng)一查找:
$("#test") document.querySelector("#test") $("#test div") => document.querySelectorAll("#test div") $("#test").find("span") => document.querySelectorAll("#test span");
獲取單個(gè)元素:
$("#test div").eq(0)[0] => document.querySelectorAll("#test div")[0]
獲取HTML、head、body:
$("html") => document.documentElement $("head") => document.head $("body") => document.body
判斷節(jié)點(diǎn)是否存在
$("#test").length > 0 => document.getElementById("test") !== null $("div").length > 0 => document.querySelectorAll("div").length > 0
遍歷節(jié)點(diǎn):
$("div").each(function(i, elem) {}) function forEach(elems, callback) { if([].forEach) { [].forEach.call(elems, callback); } else { for(var i = 0; i < elems.length; i++) { callback(elems[i], i); } } } var div = document.querySelectorAll("div"); forEach(div, function(elem, i){ });
清空節(jié)點(diǎn)
$("#test").empty() => document.getElementById("test").innerHTML = "";
節(jié)點(diǎn)比較
$("div").is($("#test")) => document.querySelector("div") === document.getElementById("test")
2、獲取/設(shè)置內(nèi)容(值)
獲取/設(shè)置元素內(nèi)的內(nèi)容
$("div").html() => document.querySelecotr("div").innerHTML $("div").text() => var t = document.querySelector("div"); t.textContent || t.innerText; $("div").html("abc"); => document.querySelecotr("div").innerHTML = "abc"; $("div;).text("abc") => document.querySelecotr("div").textContent = "abc"
獲取包含元素本身的內(nèi)容
$("").append($("#test").clone()).html() => document.getElementById("test").outerHTML $("").append($("#test").clone()).html("abc") => document.getElementById("test").outerHTML = "abc"獲取表單值
$("input").val() => document.querySelector("input").value $("input").val("abc") => document.querySelector("input").value = "abc"3、class類名操作
類名新增
$("#test").addClass("a") function addClass(elem, className) { if(elem.classList) { elem.classList.add(className); } eles { elem.className += " " + className; } } addClass(document.getElementById("test"), "a");類名刪除
$("#test").removeClass("a"); function removeClass(elem, className) { if(elem.classList) { elem.classList.remove(className); } else { elem.className = elem.className.replace(new RegExp("(^|)" + className.split(" ").join("|") + "(|$)", "gi"), " "); } } removeClass(document.getElementById("test"), "a");類名包含:
$("#test").hasClass("a") function hasClass(elem, className) { if(elem.classList) { return elem.classList.contains(className); } else { return new RegExp("(^| )" + className + "( |$)", "gi").test(elem.className); } } hasClass(document.getElementById("test"), "a");4、節(jié)點(diǎn)操作
創(chuàng)建節(jié)點(diǎn)
$("") => document.createElement("div")復(fù)制節(jié)點(diǎn):
$("div").clone() => document.querySelector("div").cloneNode(true)插入節(jié)點(diǎn):
$("div").append("") var span = document.createElement("span"); document.querySelector("div").appendChild(span);在指定節(jié)點(diǎn)之前插入新的子節(jié)點(diǎn)
$("").insertBefore("#test"); var t = document.getElementById("test"); var span = document.createElement("span"); t.parentNode.insertBefore(span, t); /*更簡(jiǎn)單的*/ t.insertAdjacentHTML("beforeBegin", "");
在指定節(jié)點(diǎn)后插入新的子節(jié)點(diǎn):
$("").insertAfter("#test") function insertAfter(elem, newNode){ if(elem.nextElementSibling) { elem.parentNode.insertBefore(newNode, elem.nextElementSibling); } else { elem.parentNode.appendChild(newNode); } } var t = document.getElementById("test"); var span = document.createElement("span"); insertAfter(t, span); /*更簡(jiǎn)單的*/ t.insertAdjacentHTML("afterEnd", "");
獲取父節(jié)點(diǎn)
$("#test").parent() => document.getElementById("test").parentNode刪除節(jié)點(diǎn)
$("#test").remove() var t = document.getElementById("test"); t.parentNode.removeChild(t);獲取Element子節(jié)點(diǎn)
$("#test").children() function children(elem) { if(elem.children) { return elem.children; } else { var children = []; for (var i = el.children.length; i--;) { if (el.children[i].nodeType != 8) children.unshift(el.children[i]); } return children; } } children(document.getElementById("test"));獲取下一個(gè)兄弟節(jié)點(diǎn):
$("#test").next() function nextElementSibling(elem) { if(elem.nextElementSibling) { return elem.nextElementSibling; } else { do { elem = elem.nextSibling; } while ( elem && elem.nodeType !== 1 ); return elem; } } nextElementSibling(document.getElementById("test"));獲取上一個(gè)兄弟節(jié)點(diǎn):
$("#test").prev() function previousElementSibling(elem) { if(elem.previousElementSibling) { return elem.previousElementSibling; } else { do { elem = elem.previousSibling; } while ( elem && elem.nodeType !== 1 ); return elem; } } previousElementSibling(document.getElementById("test"));5、屬性操作
獲取屬性
$("#test").attr("class") => document.getElementById("test").getAttribute("class")刪除屬性
$("#test").removeAttr("class") => document.getElementById("test").removeAttribute("class")設(shè)置屬性
$("#test").attr("class", "abc") => document.getElementById("test").setAttribute("class", "abc");6、CSS樣式操作
設(shè)置樣式
$("#test").css("height", "10px"); => document.getElementById("test").style.height = "10px";獲取樣式
$("#test").css("height") var getStyle = function(dom, attr) { return dom.currentStyle ? dom.currentStyle[attr] : getComputedStyle(dom, false)[attr]; }; getStyle(document.getElementById("test"), "height");獲取偽類的CSS樣式
window.getComputedStyle(el , ":after")[attrName];注:IE是不支持獲取偽類的
7、字符串操作
去除空格
$.trim(" abc ") function trim(str){ if(str.trim) { return str.trim(); } else { return str.replace(/^s+|s+$/g, ""); } } trim(" abc ");8、JSON操作
JSON序列化
$.stringify({name: "TG"}) => JSON.stringify({name: "TG"})JSON反序列化
$.parseJSON("{ "name": "TG" }") => JSON.parse("{ "name": "TG" }")原文鏈接:不要過度依賴JQuery(一)
如有錯(cuò)誤,歡迎指正!如有更好建議,歡迎留言!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/81274.html
相關(guān)文章
不要過度依賴JQuery(三)
摘要:在這里先拜個(gè)年,祝大家新年快樂,闔家幸福,步步高升回歸正題,在不要過度依賴一和不要過度依賴二兩篇文章中已經(jīng)列舉了大量的使用原生替代的例子,在本文中將繼續(xù)列舉表單獲取焦點(diǎn)失去焦點(diǎn)實(shí)時(shí)監(jiān)控判斷類型判斷類型判斷是否為一個(gè)函數(shù)判斷是否為數(shù)字判斷是 在這里先拜個(gè)年,祝大家新年快樂,闔家幸福,步步高升! 回歸正題,在不要過度依賴JQuery(一)和不要過度依賴JQuery(二)兩篇文章中已經(jīng)列舉了...
不要過度依賴JQuery(三)
摘要:在這里先拜個(gè)年,祝大家新年快樂,闔家幸福,步步高升回歸正題,在不要過度依賴一和不要過度依賴二兩篇文章中已經(jīng)列舉了大量的使用原生替代的例子,在本文中將繼續(xù)列舉表單獲取焦點(diǎn)失去焦點(diǎn)實(shí)時(shí)監(jiān)控判斷類型判斷類型判斷是否為一個(gè)函數(shù)判斷是否為數(shù)字判斷是 在這里先拜個(gè)年,祝大家新年快樂,闔家幸福,步步高升! 回歸正題,在不要過度依賴JQuery(一)和不要過度依賴JQuery(二)兩篇文章中已經(jīng)列舉了...
H5 知識(shí)點(diǎn) - 收藏集 - 掘金
摘要:目錄不要過度依賴一前端掘金毫無疑問,是一款非常優(yōu)秀的庫(kù),它讓我們開發(fā)項(xiàng)目變得更加便捷容易。但是作為一個(gè)前端工作者,我們肯定也希望在我們的網(wǎng)頁(yè)里也能看到這么酷分鐘搞定常用基礎(chǔ)知識(shí)前端掘金基礎(chǔ)智商劃重點(diǎn)在實(shí)際開發(fā)中,已經(jīng)非常普及了。 跨域解決方案總結(jié) - 前端 - 掘金為什么需要跨域? 就得先知道同源策略. 同源策略 同源策略是為了保證數(shù)據(jù)的安全性,一個(gè)域的腳本不能去操作另外一個(gè)域的腳本的...
不要過度依賴JQuery(二)
摘要:為什么說不要過度依賴呢從項(xiàng)目方面來講,一些項(xiàng)目在開發(fā)中實(shí)際用到內(nèi)置功能不多,這樣會(huì)造成項(xiàng)目臃腫另一方面,目前的主流已經(jīng)傾向于原生開發(fā)。而在之前一篇不要過度依賴一一文中已經(jīng)介紹了部分使用原生實(shí)現(xiàn)功能的代碼,這一章將繼續(xù)列舉。 為什么說不要過度依賴JQuery呢?從項(xiàng)目方面來講,一些項(xiàng)目在開發(fā)中實(shí)際用到JQuery內(nèi)置功能不多,這樣會(huì)造成項(xiàng)目臃腫;另一方面,目前的主流已經(jīng)傾向于原生開發(fā)。 ...
發(fā)表評(píng)論
0條評(píng)論
ckllj
男|高級(jí)講師
TA的文章
閱讀更多
LINUX:程序和進(jìn)程
閱讀 2349·2021-11-23 09:51
短信驗(yàn)證碼平臺(tái)有哪些比較好用?需從這3個(gè)方面來決定!
閱讀 1153·2021-11-22 13:52
[11.11]CMIVPS年度大促VPS主機(jī)5折,香港大帶寬/直連線路月付3.5美元起
閱讀 3624·2021-11-10 11:35
Tmwhost,澳門VPS(7.5折優(yōu)惠),$5.62/月,1核/1G內(nèi)存/50G Raid5 SS
閱讀 1206·2021-10-25 09:47
Resultful API的攔截(過濾器——Filter)
閱讀 3012·2021-09-07 09:58
前端每日實(shí)戰(zhàn):145# 視頻演示如何用純 CSS 創(chuàng)作一個(gè)電源開關(guān)控件
閱讀 1075·2019-08-30 15:54
PHP基于Thinkphp5的砍價(jià)活動(dòng)相關(guān)設(shè)計(jì)
閱讀 2831·2019-08-29 14:21
CSS形狀之border-radius
閱讀 3043·2019-08-29 12:20