DOM節點訪問關係與操作示例
一.DOM 訪問關係(節點的獲得)
節點的訪問關係,是以屬性的方式存在的。
DOM的節點並不是孤立的,因此可以通過DOM節點之間的相對關係對它們進行訪問。
父節點 ( parentNode )
呼叫者就是節點。一個節點只有一個父節點。呼叫方式就是節點.parentNode.
//box1是box的父節點
var box2 = document.getElementsByClassName("box2") [0];
var box2 = document.getElementById("box2")
console.log(box2.parentNode);// 在控制檯中列印父盒子box1
兄弟節點
Sibling就是兄弟的意思。
Next:下一個的意思。
Previous:前一個的意思。
nextSibling:呼叫者是節點。IE678中指下一個元素節點(標籤)。在火狐谷歌IE9+以後都指的是下一個節點(包括空文件和換行節點)。
nextElementSibling:在火狐谷歌IE9都指的是下一個元素節點。
總結:在IE678中用nextSibling,在火狐谷歌IE9+以後用nextElementSibling
//通常的程式碼書寫格式
下一個兄弟節點=節點.nextElementSibling || 節點.nextSibling
//nextElementSibling下一個兄弟節點
console.log(box2.nextElementSibling);
previousSibling:呼叫者是節點。IE678中指前一個元素節點(標籤)。在火狐谷歌IE9+以後都指的是前一個節點(包括空文件和換行節點)。
previousElementSibling:在火狐谷歌IE9都指的是前一個元素節點。
//通常的程式碼書寫格式
前一個兄弟節點=節點.previousElementSibling|| 節點.previousSibling
單個子節點
firstChild:呼叫者是父節點。IE678中指第一個子元素節點(標籤)。在火狐谷歌IE9+以後都指的是第一個節點(包括空文件和換行節點)。
firstElementChild:在火狐谷歌IE9都指的第一個元素節點。
//通常的程式碼書寫格式
第一個子節點=父節點.firstElementChild || 父節點.firstChild
lastChild:呼叫者是父節點。IE678中指最後一個子元素節點(標籤)。在火狐谷歌IE9+以後都指的是最後一個節點(包括空文件和換行節點)。
lastElementChild:在火狐谷歌IE9都指的最後一個元素節點。
//通常的程式碼書寫格式
第一個子節點=父節點.lastElementChild|| 父節點.lastChild
所有子節點
childNodes:它是標準屬性,它返回指定元素的子元素集合,包括HTML節點,所有屬性,文字節點 (他還是W3C的親兒子 )
火狐 谷歌等高本版會把換行也看做是子節點
nodeType==1時才是元素節點(標籤)
nodeType == 1 表示的是元素節點 記住 元素就是標籤
nodeType == 2 表示是屬性節點 瞭解
nodeType == 3 是文字節點 瞭解
//通常的程式碼書寫格式
子節點陣列 = 父節點.childNodes; //獲取所有節點。
children:非標準屬性,它返回指定元素的子元素集合。
但它只返回HTML節點,甚至不返回文字節點,雖然不是標準的DOM屬性,但它和innerHTML方法一樣,得到了幾乎所有瀏覽器的支援。
children在IE6/7/8中包含註釋節點
在IE678中,註釋節點不要寫在裡面。
//通常的程式碼書寫格式
子節點陣列 = 父節點.children; //用的最多。
DOM的節點操作
獲取:getAttribute(名稱)
設定:setAttribute(名稱, 值)
刪除:removeAttribute(名稱)
注意:IE6、7不支援。
呼叫者:節點。 有引數。 沒有返回值。
每一個方法意義不同。
建立
var aaa = document.createElement("li");
var bbb = document.createElement("afadsfadsf");
console.log(aaa);//box中多出li標籤
console.log(bbb);//box中多出afadsfadsf標籤
新增
var box1 = document.getElementsByClassName("box1")[0];
box1.appendChild(aaa);
box1.insertBefore(bbb,aaa);//在bbb之前新增aaa
刪除
box1.removeChild(bbb);
aaa.parentNode.removeChild(aaa);//自殺,自己刪除自己
克隆
var ccc = box1.cloneNode();//只克隆節點本身不克隆內容
var ddd = box1.cloneNode(true);//克隆節點本身和節點內容
console.log(ccc);
console.log(ddd);
總體程式碼
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div class="box1">
<div class="box2" id="box2"></div>
<div class="box3"></div>
</div>
<script>
//節點的訪問關係是以屬性形式存在
//1.box1是box的父節點
// var box2 = document.getElementsByClassName("box2")[0];
// var box2 = document.getElementById("box2")
// console.log(box2.parentNode);
//
// //2.nextElementSibling下一個兄弟節點
// console.log(box2.nextElementSibling);
//
// //firstElementChild第一個子節點
// console.log(box2.parentNode.firstElementChild);
//
// //所有子節點
// console.log(box2.parentNode.childNodes);
// console.log(box2.parentNode.children);
//節點的操作
//1.建立
var aaa = document.createElement("li");
var bbb = document.createElement("afadsfadsf");
console.log(aaa);
console.log(bbb);
//新增
var box1 = document.getElementsByClassName("box1")[0];
box1.appendChild(aaa);
box1.insertBefore(bbb,aaa);
//刪除
box1.removeChild(bbb);
aaa.parentNode.removeChild(aaa);//自殺,自己刪除自己
//克隆
var ccc = box1.cloneNode();//只克隆節點本身不克隆內容
var ddd = box1.cloneNode(true);//克隆節點本身和節點內容
console.log(ccc);
console.log(ddd);
</script>
</body>
</html>
節點屬性的操作
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script>
window.onload = function () {
var eleNode = document.getElementsByTagName("img")[0];
//屬性、賦值獲取兩種方式
//1.元素節點.屬性或者元素節點[屬性]
eleNode.src = "image/jd2.png";
eleNode.aaa = "bbb";
console.log(eleNode.aaa);
console.log(eleNode.src);
console.log(eleNode.tagName);
console.log(eleNode["title"]);
console.log(eleNode["className"]);
console.log(eleNode["alt"]);
//2.元素節點.方法();
console.log(eleNode.getAttribute("id"));
eleNode.setAttribute("id","你好");
eleNode.setAttribute("ccc","ddd");
eleNode.removeAttribute("id");
}
</script>
</head>
<body>
<img src="image/jd1.png" class="box" title="圖片" alt="京東狗" id="aaa"/>
</body>
</html>
相關推薦
DOM節點訪問關係與操作示例
一.DOM 訪問關係(節點的獲得) 節點的訪問關係,是以屬性的方式存在的。 DOM的節點並不是孤立的,因此可以通過DOM節點之間的相對關係對它們進行訪問。 父節點 ( parentNode ) 呼叫者就是節點。一個節點只有一個父節點。呼叫方式就是節
V-4-3 訪問vCenter與操作
vmware vcenter 1.使用普通電腦,在網頁端(瀏覽器)訪問vCenter註意:你應該使用https訪問vCenter的網絡端口9443,格式如下:https://your.vCenter.ip:9443。並且安裝flash插件。如下圖,你的瀏覽器可能出現證書的問題,可以選擇忽略或者信任服務
javascript學習筆記:DOM節點關系和操作
seq 文本節點 文檔 use true 添加節點 check iss pen 0x01:前面的話 DOM可以將任何HTML描繪成一個由多層節點構成的結構。節點分為12種不同類型,每種類型分別表示文檔中不同的信息及標記。每個節點都擁有各自的特點、數據和方法,也與其他節點存在
JQuery應用例項學習 —— 19 JQuery物件與DOM物件的關係與轉換
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <ti
JavaScript DOM概述(獲取節點的方法/節點的訪問關係/節點建立新增刪除複製/屬性獲取設定刪除)
DOM 概述 document object model 文件物件模型:處理網頁內容的方法和介面 1. 什麼是DOM和節點 - document是文件物件模型的一部分。 - DOM是一個複合的資料型別。 - DOM樹:由節點(Node)組成 - HTML的組
JS 中DOM節點的訪問關係
節點的訪問關係,是以屬性的方式存在的。DOM的節點並不是孤立的,因此可以通過DOM節點之間的相對關係對它們進行訪問。 一、關係 1、父節點 parentNode 呼叫者就是節點。一個節點只有一個父節點。呼叫方式:節點.parentNode 2、兄弟節點 nextSib
JavaScript與C#的互操作示例
html 一個 互操作 第一次 demo dem 寫博客 第三方類 第三方 近期,因為項目需要開發PC版本,所以涉及到PC版本開發技術選型的問題。 采用winForm:界面設計太難看了 采用wpf:界面好看,但是內存占用太大了。而且公司WPF技術實力不強 最後,決定采用前端
jQuery DOM節點操作
使用 strong cti html ndt pty index all taf 一、創建節點 var box = $(‘<div id =box>節點</div>‘); //創建一個節點 $(‘body‘).appended(box);
vue怎麽不通過dom操作獲取dom節點
urn mil tar code class func pla ret 消失 今天寫一個公眾號的項目,寫了一個vue的搜索組件,點擊搜索框時,背景出現一個遮罩,代碼結構如下: template:`<div class="searchBar-div">
DOM節點操作
png 而不是 com func baidu 執行 classname class 技術分享 1、修改 class 屬性要寫成className:因為clas是關鍵字 2、.innerHTML修改標簽中的文字 給頁面添加節點document.createElemen
JQuery---選擇器、DOM節點操作練習
span gif .text ide none tle pre splay body 一、練習一 1、需求效果分析: 2、代碼示例: 1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/
JavaScript 操作DOM 節點
cnblogs -1 操作dom -- append com 技術分享 節點 doctype 1、添加DOM節點 <!DOCTYPE html> <html> <head> <meta charset="UTF-8">
jQuery DOM節點操作方法大全
dom jquery 元素操作 append(content | fn):向每個匹配的元素內部追加內容。參考:http://jquery.cuishifeng.cn/append.html例如:向所有段落中追加一些HTML標記。<p>I would like to say: </
js的DOM節點操作:創建 ,插入,刪除,復制,查找節點
con 函數 nts html屬性 追加 clas tracking nodes 末尾 DOM含義:DOM是文檔對象模型(Document Object Model,是基於瀏覽器編程的一套API接口,是W3C出臺的推薦標準。其賦予了JS操作節點的能力。當網頁被加載時,瀏
DOM節點(二):操作節點
strong node remove last rfi pan AR eno urn appendChild() 用於向childNodes列表的末尾添加一個節點。 var returnedNode = someNode.appendChild(newNode);
JS中的DOM— —節點以及操作
win col 常用 一個 var family dom節點 瀏覽器兼容 老版本 DOM操作在JS中可以說是非常常見了吧,很多網頁的小功能的實現,比如一些元素的增刪操作等都可以用JS來實現。那麽在DOM中我們需要知道些什麽才能完成一些功能的實現呢?今天這篇文章就先簡單的
JavaScript基礎及函數,BOM,DOM的節點及DOM節點操作
需要 兩個 進行 history des s系列 onclick 系統信息 回車 使用js的三種方式 1.直接在HTML標簽中,使用事件屬性,調用js代碼: <button onclick="alert(‘點我呀‘)">點我啊!<tton>
Jquery6 DOM 節點操作
模型 恢復 urn var move image 選擇 class creat 學習要點: 1.創建節點 2.插入節點 3.包裹節點 4.節點操作 DOM 中有一個非常重要的功能,就是節點模型,也就是 DOM 中的“M”。頁面中的元素結構就是通過這種節點模型來互相對應著
JavaScript學習 - 基礎(八) - DOM 節點 添加/刪除/修改/屬性值操作
nts pla 屬性 ssm style attribute The width ace html代碼: <!--添加/刪除/修改 --> <div id="a1"> <button id="a2" onclick="add()"&g
jQuery 操作DOM節點
children end inner put htm 詹姆斯 rip clas function html 內容! <body > <p>你最喜歡的名人是?</p> <ul> <li t