等同于JQuery方法的原生JavaScript:Dom和表單

Native JavaScript Equivalents of jQuery Methods: the DOM and Forms

等同于JQuery方法的原生JavaScript:Dom和表單

原文地址

DOM 選擇器

JQuery訪問DOM節(jié)點(diǎn)使用CSS選擇器語法县耽,例如

// ID為first的文章里所有summary類的段落
var n = $("article#first p.summary");

等價的原生js

var n = document.querySelectorAll("article#first p.summary");

document.querySelectorAll在所有的現(xiàn)代瀏覽器及IE8中都實(shí)現(xiàn)了苍姜,但是jQuery支持許多額外的高級選擇器王暗,大多數(shù)情況下凰盔,在$()的包裝下運(yùn)行的是document.querySelectorAll

原生JavaScript也提供了四種替代方法它們比querySelectorAll查詢速度更快裹芝,前提是你的項(xiàng)目能夠使用它們

  1. document.querySelector(selector) --僅取得地一個匹配到的節(jié)點(diǎn)
  2. document.getElementById(idname) --取得一個節(jié)點(diǎn)通過它的ID
  3. document.getElementsByTagName(tagname) --取得匹配一個元素節(jié)點(diǎn)的節(jié)點(diǎn)列表
  4. document.getElementsByClassName(class) --取得一個確切的類名的節(jié)點(diǎn)列表

getElementsByTagName和getElementsByClassName方法也能夠被用在某一個節(jié)點(diǎn)列表上坝橡,這樣可以限制特定的祖先元素,例如

var n = document.getElementById("first");
var p = n.getElementsByTagName("p");

作者做了一項(xiàng)測試蝗羊,使用jQuery2.0和原生的JavaScript獲取一個頁面上的同一個元素節(jié)點(diǎn),往往原生的速度要快仁锯,也證明了通過id或是class獲得節(jié)點(diǎn)要比querySelectorAll要快

DOM操作

jQuery提供了許多方法向DOM添加內(nèi)容耀找,例如

$("#container").append("<p>more content</p>");

它的原理是使用了原生的innerHTML方法,例如

document.getElementById("container").innerHTML += "<p>more content</p>";

你也可是使用DOM創(chuàng)建技術(shù)业崖,他們更安全但是不比innerHTML快

var p = document.createElement("p");
p.appendChild(document.createTextNode("more content");
document.getElementById("container").appendChild(p);

我們也能通過jQuery移除所有的子節(jié)點(diǎn):

$("#container").empty();

等價的原生js使用innerHTM:

document.getElementById("container").innerHTML = null;

或者一個小函數(shù)

var c = document.getElementById("container");
while (c.lastChild) c.removeChild(c.lastChild);

最后野芒,我們使用jQuery從DOM移除這整個元素:

$("#container").remove();

或者原生js

var c = document.getElementById("container");
c.parentNode.removeChild(c);

SVG

SVG也有DOM,但是jQuery沒有向這些對象提供一個直接的操作方法双炕,因?yàn)橥ǔP枰褂孟馽reateElementNS和getAttributeNS.但是有許多插件可供使用狞悲,但是更有效的方法是自己打代碼或者使用像Rapha?lsvg.js這樣的庫

HTML5表單

使用jQuery或是原生js?
都不要

HTML5指出不同的input type妇斤,例如 emails, telephones, URLs, numbers, times, dates, colors和通過正則表達(dá)式的自定義表單摇锋,例如,如果你想要強(qiáng)制用戶輸入郵箱地址站超,可以使用:

<input type="email" name="email" required="required" />
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末荸恕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子死相,更是在濱河造成了極大的恐慌融求,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件算撮,死亡現(xiàn)場離奇詭異生宛,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)肮柜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門陷舅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人素挽,你說我怎么就攤上這事蔑赘。” “怎么了预明?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵缩赛,是天一觀的道長。 經(jīng)常有香客問我撰糠,道長酥馍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任阅酪,我火速辦了婚禮旨袒,結(jié)果婚禮上汁针,老公的妹妹穿的比我還像新娘。我一直安慰自己砚尽,他們只是感情好施无,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著必孤,像睡著了一般猾骡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上敷搪,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天兴想,我揣著相機(jī)與錄音,去河邊找鬼赡勘。 笑死嫂便,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的闸与。 我是一名探鬼主播毙替,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼几迄!你這毒婦竟也來了蔚龙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤映胁,失蹤者是張志新(化名)和其女友劉穎木羹,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體解孙,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坑填,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了弛姜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脐瑰。...
    茶點(diǎn)故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖廷臼,靈堂內(nèi)的尸體忽然破棺而出苍在,到底是詐尸還是另有隱情,我是刑警寧澤荠商,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布寂恬,位于F島的核電站,受9級特大地震影響莱没,放射性物質(zhì)發(fā)生泄漏初肉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一饰躲、第九天 我趴在偏房一處隱蔽的房頂上張望牙咏。 院中可真熱鬧臼隔,春花似錦、人聲如沸妄壶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盯拱。三九已至盒发,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間狡逢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工拼卵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留奢浑,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓腋腮,卻偏偏與公主長得像雀彼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子即寡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容

  • 什么是DOM徊哑??聪富? DOM(Document Object Model 文檔對象模型)是針對HTML和XML文檔的...
    熒惑3_3閱讀 1,393評論 0 1
  • 一莺丑、樣式篇 第1章 初識jQuery (1)環(huán)境搭建 進(jìn)入官方網(wǎng)站獲取最新的版本 http://jquery.co...
    凜0_0閱讀 3,394評論 0 44
  • 小時候,年墩蔓,是我們最盼望的事情梢莽。 那時候家里很窮很窮,寒假開始奸披,家長就給我們布置了好多作業(yè):做飯做菜收拾房間...
    冒牌文人閱讀 277評論 0 0
  • 兩個熟人的死 驚聞噩耗昏名,不知如何形容我的心情,覺得好像心里塞了捆稻草般堵的慌阵面,好好的兩個人怎么就突然沒了轻局,...
    劉顯玲閱讀 745評論 0 4
  • 今天突然想起N多年前在老家的一個好友,真切記得我們是怎么成為好友的样刷。 我們是工作后在一起外出學(xué)...
    丁香的故事閱讀 197評論 0 0