亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

JavaScript DOM元素常見操作詳解【添加、刪除、修改等】

2024-05-06 16:44:11
字體:
來源:轉載
供稿:網友

本文實例講述了JavaScript DOM元素常見操作。分享給大家供大家參考,具體如下:

DOM概念

DOM(Document Object Model):文檔對象模型。

通過開發者工具的Elements標簽頁可以查看

通過開發者工具的Sources標簽頁也可以觀察到整個文檔是有一系列節點

整個文檔是由一系列節點對象組成的一棵樹。

節點(Node)包括元素節點(1)、屬性節點(2)、文本節點(3)(1..2..3..代表節點類型)_

var th1= document.getElementById("th1");alert(th1.nodeType);alert(th1.nodeName);alert(th1.nodeValue);

th1代表一個元素節點(nodeType=1),nodeName就是標簽名(th),元素節點的nodeValue=null。

var attr1=th1.getAttributeNode("name");alert(attr1.nodeType);alert(attr1.nodeName);alert(attr1.nodeValue);

getAttributeNode方法是獲取元素的屬性節點,此時輸出的節點類型為屬性節點(2),節點名稱就是屬性名(name),節點值就是屬性值(sex)

var txtl = th1.firstChild;alert(txtl.nodeType);alert(txtl.nodeName);alert(txtl.nodeValue)

txt1是一個文本節點(3),節點名稱固定就是#text,節點值就是文本內容。

獲取元素

(1)getElementByid

根據元素的id屬性來獲取元素,獲取到的是一個元素。

(2)getElementsByTagName

根據標簽名來獲取元素,結果是一個元素集合。

(3)getElementsByClassName

根據class屬性來獲取元素,結果是一個元素集合。

(4)getElementsByName

根據name屬性來獲取元素,結果是一個元素集合。

總結:獲取元素可以根據標簽名獲取、也可以根據id、name、class屬性來獲取。根據id屬性獲取的結果是一個元素,而其它的獲取的是一個集合。

document對象支持以上四種,而element對象僅支持getElementsByTagNamegetElementsByClassName。

修改元素

(1)修改內容

function fun(){  //獲取到指定元素  var p1 = document.getElementById("p1");  p1.innerText = "我被單擊了!";}

通過.innerText屬性可讀取或設置標簽的內容文本

function fun(){  //獲取到指定元素  var p1 = document.getElementById("p1");  p1.innerHTML = "我被單擊了!<br>換行了";}

也可以通過innerHTML屬性獲取或設置內容文本

倆者的區別:innerHTML會按照HTML規則解析文本,而innerText只是當做普通文本內容。

(1)  修改樣式

A.xxx.style.屬性名=“值”

B.xxx.classname=“…”(相當于修改了class的屬性)

<style>    .style1{      color:red;      font-size:20px;      text-decoration:underline;    }    .style2{      color:blue;      font-size:32px;      text-decoration:line-through;    }  </style></head><body><p id="p1">修改樣式測試</p><input type="button"value="樣式一"onclick="style1()"><input type="button"value="樣式二"onclick="style2()"></body><script>  var p1 = document.getElementById("p1");  function style1(){    p1.className = "style1"  }  function style2(){    p1.className = "style2"  }</script></html>

添加刪除元素

(1)CreateElement建一個元素節點

CreateElement("p")創建一個段落

(2)createTextNode創建一個文本節點

createTextNode("文本內容"),創建一個值為“文本內容”的文本節點.

(3)appendChild添加子節點

(4)removeChild  刪除子節點

動態添加

<body><div id="div1"></div><input type="button"value="添加段落"onclick="add()"></body><script>//全局變量  var index = 1;  function add(){    //創建一個段落標簽    var p = document.createElement("p");    //創建文本節點    var content= "第"+index+"段落";    var txt = document.createTextNode(content);    //創建文本節點添加的段落    p.appendChild(txt);    //將段落添加到div中    var div1 = document.getElementById("div1");    div1.appendChild(p);    index++  }</script>

動態刪除

<body><div id="div1">  <p id="p1">第1段落 </p>  <p id="p2">第2段落 </p>  <p id="p3">第3段落 </p>  <p id="p4">第4段落 </p></div><input type="button"value="刪除第二段"onclick="del()"></body><script>  function del(){    //先找到父節點    var div1 = document.getElementById("div1");    //再找到要刪除的節點    var p2 = document.getElementById("p2");    //將要刪除的節點從父節點中移除    div1.removeChild(p2);  }</script></html>

這種方法是分別找到父節點和要刪除的節點,然后執行刪除操作。該方法的一個前提是知道父節點是誰

那么如果并不知道父節點是誰,該如何刪除呢

p2.parentNode.removeChild(p2);

這個方法并不需要父節點是誰

動態的添加和刪除:

動態添加和動態刪除,刪除動態添加的奇數段落

思路1:獲取div1 下的所以段落,遍歷所以的段落,將序號為奇數的段落刪除。

function del(){  var div1 = document.getElementById("div1");  var paras = div1.getElementsByTagName("p");  for(var i in paras){    if((i+1)%2 == 1){      div1.removeChild(paras[i]);    }  }}

這種在初始時是可以的,但是隨著動態添加或刪除的進行,后面的結果就不對了。因為動態刪除操作就影響了原來的順序,而程序是按照序號去判斷奇偶性,所以出現誤判

思路2:添加通過設置class屬性,然后通過getElementsByclassName來獲取奇數行

(也可以從后往前刪)

<body><div id="div1"></div><input type="button" value="添加段落" onclick="add()"><input type="button" value="刪除奇數第二段" onclick="de1()"></body><script>  var index = 1;  function add(){    //創建一個段落標簽    var p = document.createElement("p");    //創建文本節點    var content = "第" + index + "段落";    var txt = document.createTextNode(content);    //將文本節點添加到段落    p.appendChild(txt);    if (index % 2 == 1) {      p.setAttribute("class","odd");    }    //將段落添加到div中    var div1 = document.getElementById("div1");    div1.appendChild(p);    index++;  }  /*function de1(){   var div1 = document.getElementById("div1");   var paras =div1.getElementsByTagName("p");   for(var i in paras){   if((i+1)%2 == 1){   div1.removeChild(paras[i]);   }   }   }*/  functionde1() {    var div1 = document.getElementById("div1");    var paras = div1.getElementsByClassName("odd");//    varparas = document.getElementsByName("odd");    for (var i = paras.length - 1; i >= 0; i--) {      div1.removeChild(paras[i]);    }  }</script></html>

導航

Document:是根節點

ParentNode:獲取父節點

childNodes:獲取所有子節點

firstChild:第一個子節點

lastChlid:獲取最后一個子節點

</head><body><div name="第一章">   <p id="p1">第一段<span>第一句</span><span>第二句</span></p></div><input type="button"value="獲取父節點的name屬性"onclick="fun1()"><input type="button"value="顯示p1子節點的個數"onclick="fun2()"><input type="button"value="顯示p1第一個子節點的類型"onclick="fun3()"><input type="button"value="顯示p1最后一個子節點的類型"onclick="fun4()"></body><script>var p1 =document.getElementById("p1");function fun1(){  var value=p1.parentNode.getAttribute("name");  alert(value);}function fun2(){  var chlids = p1.childNodes;  alert(chlids.length)}function fun3(){  alert(p1.firstChild.nodeType);}function fun4(){  alert(p1.lastChild.nodeType);}</script></html>

希望本文所述對大家JavaScript程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产v综合v亚洲欧美久久| 69精品小视频| 亚洲男人天堂久| 亚洲欧美国产一区二区三区| 国内外成人免费激情在线视频网站| 国产99视频精品免视看7| 在线视频国产日韩| 亚洲欧洲成视频免费观看| 欧美老少做受xxxx高潮| 中文字幕在线看视频国产欧美在线看完整| 欧美丰满少妇xxxx| 国产精彩精品视频| 欧美在线中文字幕| 成人免费网站在线观看| 亚洲欧美日韩中文视频| 欧美精品一二区| 日本精品视频在线播放| 热99久久精品| 国产丝袜一区二区三区| 亚洲欧美在线播放| 日韩av在线直播| 久久影视三级福利片| 97视频免费看| 国产在线精品播放| 国产精品吴梦梦| 国产精品草莓在线免费观看| 欧美成aaa人片在线观看蜜臀| 中文字幕久热精品视频在线| 92版电视剧仙鹤神针在线观看| 亚洲综合第一页| 国产在线一区二区三区| 色妞在线综合亚洲欧美| 国产精品久久久久福利| 亚洲黄色有码视频| 久久影视三级福利片| xxxx欧美18另类的高清| 亚洲精品视频中文字幕| 韩国19禁主播vip福利视频| 欧美激情免费在线| 国产精品美女在线观看| 久久精品影视伊人网| 黑人巨大精品欧美一区二区一视频| 国产精品观看在线亚洲人成网| 成人黄色av网站| 亚洲2020天天堂在线观看| 久久天天躁狠狠躁夜夜躁2014| 欧美丰满片xxx777| 久久视频在线观看免费| 国产suv精品一区二区| 亚洲第五色综合网| 91国语精品自产拍在线观看性色| 日韩美女免费观看| 国产精品久久久久免费a∨大胸| 欧美成人午夜激情| 97久久精品人搡人人玩| 久久精品国产96久久久香蕉| 2019中文字幕在线观看| 亚洲欧洲在线观看| 国产在线拍揄自揄视频不卡99| 国产精品久久久久高潮| 亚洲免费电影在线观看| 久久国产加勒比精品无码| 精品福利视频导航| 亚洲男人av在线| 51久久精品夜色国产麻豆| 97欧美精品一区二区三区| 亚洲欧美一区二区三区在线| 中文字幕亚洲激情| 97精品国产97久久久久久免费| 亚洲国产私拍精品国模在线观看| 青青久久av北条麻妃海外网| 国产精品丝袜久久久久久不卡| 5566日本婷婷色中文字幕97| 国产丝袜一区视频在线观看| 日韩av在线一区| 国产成人福利夜色影视| 欧美在线视频一区| 狠狠色狠色综合曰曰| 精品国产福利视频| 亚洲精品福利在线| 国产精品观看在线亚洲人成网| 久久影视三级福利片| 国产精品第100页| 国产欧美久久一区二区| 国产69久久精品成人看| 中文字幕日韩欧美在线视频| 欧美一区二三区| 亚洲欧洲国产精品| 久久精品久久精品亚洲人| 黑人巨大精品欧美一区二区一视频| 91成人免费观看网站| 国产日产欧美a一级在线| 日韩经典第一页| 国产亚洲欧美一区| 久久综合88中文色鬼| 中文字幕日韩电影| 久久伊人精品天天| 欧美性高潮床叫视频| 久久综合免费视频影院| 欧美日韩亚洲一区二区| 久久久久免费精品国产| 亚洲一区二区久久| 97精品国产91久久久久久| 欧美一级视频一区二区| 中文字幕综合在线| 精品美女国产在线| 久久亚洲精品一区二区| 色av中文字幕一区| 日韩欧美黄色动漫| 91chinesevideo永久地址| 国产精品视频自拍| 91影院在线免费观看视频| 日韩一级裸体免费视频| 91av视频在线播放| 精品久久中文字幕久久av| 91精品久久久久久久久久另类| 亚洲欧洲自拍偷拍| 色樱桃影院亚洲精品影院| 中文字幕欧美亚洲| 精品久久久久国产| 亚洲va欧美va在线观看| 欧美激情日韩图片| 91久久国产精品91久久性色| 日韩在线播放一区| 亚洲国产成人爱av在线播放| 午夜精品美女自拍福到在线| 5566日本婷婷色中文字幕97| 久久久久久久国产精品视频| 精品国产乱码久久久久久婷婷| 亚洲无亚洲人成网站77777| 国产精品久久久久久av下载红粉| 欧美日韩中文字幕在线视频| 98精品国产自产在线观看| 91在线视频成人| 久久久久999| 亚洲精品久久久久| 久久伊人精品视频| 国产欧美日韩专区发布| 久久久久北条麻妃免费看| 欧美一级黑人aaaaaaa做受| 欧美精品日韩www.p站| 国产一区二区三区视频免费| 亚洲精品福利在线观看| 亚洲精品aⅴ中文字幕乱码| 欧美日韩在线免费| 中文字幕日韩精品在线观看| 中文字幕亚洲在线| 国产激情久久久| 日韩精品亚洲精品| 美女啪啪无遮挡免费久久网站| 亚洲国产日韩欧美在线图片| 欧美乱妇高清无乱码| 爱福利视频一区| 91亚洲精品久久久久久久久久久久| 亚洲美女激情视频| 亚洲美腿欧美激情另类| 亚洲欧美国产日韩中文字幕| 国产精品美女久久久免费| 日韩少妇与小伙激情| 国产精品尤物福利片在线观看| 欧美成人免费全部| 国产精品久久久久久久久久久不卡| 午夜精品久久久久久99热| 国产91露脸中文字幕在线|