previousSibling程式碼例項

admin發表於2017-02-28
此屬性可以返回當前節點的上一個同級節點。

如果上一個節點不存在,那麼返回null。

語法結構:

[JavaScript] 純文字檢視 複製程式碼
node.previousSibling

瀏覽器支援:

(1).IE瀏覽器支援此屬性。

(2).谷歌瀏覽器支援此屬性。

(3).火狐瀏覽器支援此屬性。

(4).opera瀏覽器支援此屬性。

(5).safria瀏覽器支援此屬性。

特別說明:在標準瀏覽器中,空格和換行被當做一個文字節點,但是在IE8和IE8以下瀏覽器中,空格和換行會被忽視。

程式碼例項:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
#box li {
  width: 350px;
  height: 25px;
  line-height: 25px;
  font-size: 12px;
}
</style>
<script type="text/javascript">
window.onload = function () {
  var li = document.getElementById("antzone");
  var odiv = document.getElementById("show");
  var node = li.previousSibling;
  while (node.nodeType == 3) {
    node = node.previousSibling;
  }
  odiv.innerHTML = node.innerHTML;
}
</script>
</head>
<body>
<ul id="box">
  <li>螞蟻部落歡迎您,只有努力才會有美好的未來</li>
  <li>每一天都是新的,必須要好好把握。</li>
  <li>沒有人一開始就是高手,必須要努力奮鬥。</li>
  <li id="antzone">未來都是虛無縹緲的,只有當前是現實。</li>
  <li>分享和互助式進步的最大原動力</li>
  <li>本站的url地址是softwhy.com</li>
</ul>
<div id="show"></div>
</body>
</html>

上面的程式碼演示了previousSibling屬性的用法,在上面對IE8和IE8以下瀏覽器做了相容處理。

一.程式碼註釋:

(1).window.onload = function () {},當文件內容完全載入完畢再去執行函式中的程式碼。

(2).var li = document.getElementById("antzone"),獲取id屬性值為antzone的li元素物件。

(3).var odiv = document.getElementById("show"),獲取id屬性值為show的div元素物件。

(4).var node = li.previousSibling,獲取li元素節點的上一個節點,在標準瀏覽器中,遇到空格後者換行那麼就返回文字節點,在IE8和IE8以下瀏覽器中,則無視空格和換行。

(5).while (node.nodeType == 3) {

  node = node.previousSibling;

},通過while迴圈語句方式,判斷上一個節點是否是文字節點,如果是,則繼續迴圈語句。

(6).odiv.innerHTML = node.innerHTML,將元素節點的html內容賦值給div。

二.相關閱讀:

(1).nodeType可以參閱js nodeType一章節。

(2).innerHTML可以參閱js innerHTML一章節。

(3).while語句可以參閱javascript while一章節。

相關文章