JS-dom操作

什么是DOM

DOM:Do

js的組成部分

一套標(biāo)準(zhǔn),目前有DOM1和DOM2這兩種標(biāo)準(zhǔn)

我們可以使用DOM操作來(lái)操作頁(yè)面中的元素。

DOM節(jié)點(diǎn)

子節(jié)點(diǎn)

childNode:返回值一個(gè)數(shù)組,放的是父節(jié)點(diǎn)中所有的子節(jié)點(diǎn)

nodeType:返回值是一個(gè)數(shù)組,1表示元素節(jié)點(diǎn),3表示文本節(jié)點(diǎn)

在某些瀏覽器中,如火狐,使用childNode獲取所有元素節(jié)點(diǎn)時(shí)會(huì)把空格等一起或取出來(lái),此時(shí)就需要使用nodeType來(lái)判斷。

示例:

? ? ? ? // 使用childNode獲取到所有的li標(biāo)簽,并將背景顏色改為紅色

? ? ? ? window.onload = function? () {

? ? ? ? ? ? var oUl = document.getElementById('ul');

? ? ? ? ? ? for (var i = 0; i < oUl.childNodes.length; i++) {

? ? ? ? ? ? ? ? // 判斷nodeType的值是否為1

? ? ? ? ? ? ? ? if (oUl.childNodes[i].nodeType == 1) {

? ? ? ? ? ? ? ? ? ? oUl.childNodes[i].style.backgroundColor = 'red';

? ? ? ? ? ? ? ? };

? ? ? ? ? ? };

? ? ? ? }

childern: 取子節(jié)點(diǎn),與childNode相比,chlidren不會(huì)把非標(biāo)簽元素解析出來(lái),不用擔(dān)心兼容性問(wèn)題

父節(jié)點(diǎn)

parentNode

首尾子節(jié)點(diǎn)

IE下的語(yǔ)法 火狐下的語(yǔ)法 含義

firstChild firstElementChild 首

lastChild lastElementChild 尾

兄弟節(jié)點(diǎn)

IE下的語(yǔ)法 火狐下的語(yǔ)法 含義

nextSibling nextElementSibling 下一個(gè)

previousSilbing previousElementSibling 上一個(gè)

添加元素

createElement(元素名):創(chuàng)建一個(gè)元素

父元素.appendChild(子元素)將子元素添加進(jìn)父元素中(添加在最后邊)

示例:點(diǎn)擊一次按鈕,添加一個(gè)li標(biāo)簽

? ? ? ? window.onload = function() {

? ? ? ? ? ? var oBtn = document.getElementById('btn');

? ? ? ? ? ? var oUl = document.getElementById('ul');

? ? ? ? ? ? var oText = document.getElementById('text');

? ? ? ? ? ? oBtn.onclick = function () {

? ? ? ? ? ? ? ? // 創(chuàng)建一個(gè)新標(biāo)簽

? ? ? ? ? ? ? ? var oLi = document.createElement('li');

? ? ? ? ? ? ? ? // 將輸入框中的文字寫(xiě)在新li標(biāo)簽中

? ? ? ? ? ? ? ? oLi.innerHTML = oText.value;

? ? ? ? ? ? ? ? // 將新標(biāo)簽添加在父標(biāo)簽里

? ? ? ? ? ? ? ? oUl.appendChild(oLi);

? ? ? ? ? ? }

? ? ? ? }

? ?

? ?

? ? ? ?

  • hello

    父元素.insertBefore(子元素,在誰(shuí)之前插入),在誰(shuí)之前插入子元素

    ? ? ? ? window.onload = function() {

    ? ? ? ? ? ? var oBtn = document.getElementById('btn');

    ? ? ? ? ? ? var oUl = document.getElementById('ul');

    ? ? ? ? ? ? var oText = document.getElementById('text');

    ? ? ? ? ? ? oBtn.onclick = function () {

    ? ? ? ? ? ? ? ? // 創(chuàng)建一個(gè)新標(biāo)簽

    ? ? ? ? ? ? ? ? var oLi = document.createElement('li');

    ? ? ? ? ? ? ? ? // 將輸入框中的文字寫(xiě)在新li標(biāo)簽中

    ? ? ? ? ? ? ? ? oLi.innerHTML = oText.value;

    ? ? ? ? ? ? ? ? // 將新標(biāo)簽添加在父標(biāo)簽里

    ? ? ? ? ? ? ? ? // oUl.appendChild(oLi);

    ? ? ? ? ? ? ? ? var aLi = document.getElementsByTagName('li');

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // 在第0個(gè)元素之前插入新元素

    ? ? ? ? ? ? ? ? oUl.insertBefore(oLi, aLi[0]);

    ? ? ? ? ? ? }

    ? ? ? ? }

    ? ?

    ? ?

    ? ? ? ?

  • hello

    刪除元素

    父元素.removeChild(要?jiǎng)h除的元素):刪除父元素中的某個(gè)子元素

    示例:點(diǎn)擊刪除,刪除某個(gè)元素

    ? ? ? ? window.onload = function() {

    ? ? ? ? ? ? var oBtn = document.getElementsByTagName('a');

    ? ? ? ? ? ? var oUl = document.getElementById('ul');

    ? ? ? ? ? ? for (var i = 0; i < oBtn.length; i++) {

    ? ? ? ? ? ? ? ? oBtn[i].onclick = function() {

    ? ? ? ? ? ? ? ? ? ? oUl.removeChild(this.parentNode);

    ? ? ? ? ? ? ? ? }

    ? ? ? ? ? ? };

    ? ? ? ? }

    ? ?

    ? ?

    ? ? ? ?

  • hello刪除

    ? ? ? ?

  • 123刪除

    ? ? ? ?

  • 234刪除

    ? ? ? ?

  • hel234lo刪除

  • ? ?

    ? ?

    ? ?

    ? ?

    ? ?

    ? ?

    ? ? ? ?

    ? ? ? ?

    ? ? ? ?

    ? ?

    ? ?

    最后編輯于
    ?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
    【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
    平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

    相關(guān)閱讀更多精彩內(nèi)容

    • 1:dom對(duì)象的innerText和innerHTML有什么區(qū)別? innerText是一個(gè)可寫(xiě)屬性,返回元素內(nèi)包...
      饑人谷_bigJiao閱讀 326評(píng)論 0 0
    • 工廠模式類(lèi)似于現(xiàn)實(shí)生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實(shí)現(xiàn)同樣的效果;這時(shí)候需要使用工廠模式。簡(jiǎn)單...
      舟漁行舟閱讀 8,116評(píng)論 2 17
    • 1.DOM基礎(chǔ) 什么是DOM :document ,節(jié)點(diǎn)! 其實(shí)說(shuō)的都是一個(gè)東西, CSS時(shí)管叫標(biāo)簽, JS時(shí)管叫...
      壹點(diǎn)微塵閱讀 489評(píng)論 0 0
    • DOM DOM內(nèi)容主要分為四部分: 什么是DOM和節(jié)點(diǎn); 獲取節(jié)點(diǎn); 節(jié)點(diǎn)操作(3種); 屬性操作(3種)。 什么...
      magic_pill閱讀 897評(píng)論 0 1
    • 翻譯自:高性能Javascript 第三章Dom操作是昂貴的,它通常是web應(yīng)用的性能瓶頸。這篇文章討論Dom操作...
      Addy_Zhou閱讀 3,154評(píng)論 0 5

    友情鏈接更多精彩內(nèi)容