91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS獲取子節點、父節點和兄弟節點的方法實例總結

發布時間:2020-08-21 21:00:21 來源:腳本之家 閱讀:172 作者:-老K- 欄目:web開發

本文實例講述了JS獲取子節點、父節點和兄弟節點的方法。分享給大家供大家參考,具體如下:

一、js獲取子節點的方式

1. 通過獲取dom方式直接獲取子節點

其中test的父標簽id的值,div為標簽的名字。getElementsByTagName是一個方法。返回的是一個數組。在訪問的時候要按數組的形式訪問。

var a = document.getElementById("test").getElementsByTagName("div");

2. 通過childNodes獲取子節點

使用childNodes獲取子節點的時候,childNodes返回的是子節點的集合,是一個數組的格式。他會把換行和空格也當成是節點信息。

var b =document.getElementById("test").childNodes;

為了不顯示不必須的換行的空格,我們如果要使用childNodes就必須進行必要的過濾。通過正則表達式式取掉不必要的信息。下面是過濾掉

//去掉換行的空格
for(var i=0; i<b.length;i++){
  if(b[i].nodeName == "#text" && !/\s/.test(b.nodeValue)){
    document.getElementById("test").removeChild(b[i]);
  }
}
//打印測試
for(var i=0;i<b.length;i++){
  console.log(i+"---------")
  console.log(b[i]);
}
//補充 document.getElementById("test").childElementCount; 可以直接獲取長度 同length

4. 通過children來獲取子節點

利用children來獲取子元素是最方便的,他也會返回出一個數組。對其獲取子元素的訪問只需按數組的訪問形式即可。

var getFirstChild = document.getElementById("test").children[0];

5. 獲取第一個子節點

firstChild來獲取第一個子元素,但是在有些情況下我們打印的時候會顯示undefined,這是什么情況呢??其實firstChild和childNodes是一樣的,在瀏覽器解析的時候會把他當換行和空格一起解析,其實你獲取的是第一個子節點,只是這個子節點是一個換行或者是一個空格而已。那么不要忘記和childNodes一樣處理呀。

var getFirstChild = document.getElementById("test").firstChild;

6. firstElementChild獲取第一個子節點

使用firstElementChild來獲取第一個子元素的時候,這就沒有firstChild的那種情況了。會獲取到父元素第一個子元素的節點 這樣就能直接顯示出來文本信息了。他并不會匹配換行和空格信息。

var getFirstChild = document.getElementById("test").firstElementChild;

7. 獲取最后一個子節點

lastChild獲取最后一個子節點的方式其實和firstChild是類似的。同樣的lastElementChild和firstElementChild也是一樣的。不再贅余。

var getLastChildA = document.getElementById("test").lastChild;
var getLastChildB = document.getElementById("test").lastElementChild;

二、js獲取父節點的方式

1. parentNode獲取父節點

獲取的是當前元素的直接父元素。parentNode是w3c的標準。

var p = document.getElementById("test").parentNode;

2. parentElement獲取父節點

parentElement和parentNode一樣,只是parentElement是ie的標準。

var p1 = document.getElementById("test").parentElement;

3. offsetParent獲取所有父節點

一看offset我們就知道是偏移量 其實這個是于位置有關的上下級 ,直接能夠獲取到所有父親節點, 這個對應的值是body下的所有節點信息。

var p2 = document.getElementById("test").offsetParent;

三、js獲取兄弟節點的方式

1. 通過獲取父親節點再獲取子節點來獲取兄弟節點

var brother1 = document.getElementById("test").parentNode.children[1];

2. 獲取上一個兄弟節點

在獲取前一個兄弟節點的時候可以使用previousSibling和previousElementSibling。他們的區別是previousSibling會匹配字符,包括換行和空格,而不是節點。previousElementSibling則直接匹配節點。

var brother2 = document.getElementById("test").previousElementSibling;
var brother3 = document.getElementById("test").previousSibling;

3. 獲取下一個兄弟節點

同previousSibling和previousElementSibling,nextSibling和nextElementSibling也是類似的。

var brother4 = document.getElementById("test").nextElementSibling;
var brother5 = document.getElementById("test").nextSibling;

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript操作DOM技巧總結》、《JavaScript頁面元素操作技巧總結》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

威远县| 泗阳县| 浦北县| 和硕县| 阿荣旗| 乌鲁木齐县| 岗巴县| 渝北区| 太仓市| 大同县| 临泽县| 博罗县| 新郑市| 长海县| 四子王旗| 武川县| 土默特左旗| 枞阳县| 尚义县| 邵阳市| 房山区| 青州市| 寿宁县| 盐亭县| 云安县| 思南县| 定州市| 星座| 镇坪县| 资阳市| 武鸣县| 益阳市| 厦门市| 吉安市| 财经| 大邑县| 桦川县| 扎鲁特旗| 阿瓦提县| 郑州市| 得荣县|