js將dom元素集合轉換為陣列

螞蟻小編發表於2017-04-14

本章節介紹一下如何將dom元素集合轉換為陣列。

先看一段程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
var lis = document.querySelectorAll("#box li");

生成的lis是一個dom元素集合,也可以說它是一個類陣列,但並不是真正的陣列,不具有陣列物件的一些方法(),比如sort()、reduce()、map()、filter();更多關於陣列物件內容可以參閱javascript Array物件一章節。

所以需要將類陣列轉換為真正的陣列,程式碼例項如下:

[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 lis = document.querySelectorAll("#box li");
  var arr= [].slice.call(lis);
  arr.map(function (elem,index) {
    if(index%2==0){
      elem.style.backgroundColor = "#ccc";
    }
  })
}
</script>
</head>
<body>
<ul id="box">
  <li>螞蟻部落歡迎您,只有努力才會有美好的未來</li>
  <li>每一天都是新的,必須要好好把握。</li>
  <li>沒有人一開始就是高手,必須要努力奮鬥。</li>
  <li>未來都是虛無縹緲的,只有當前是現實。</li>
  <li>分享和互助式進步的最大原動力</li>
  <li>本站的url地址是www.softwhy.com。</li>
</ul>
</body>
</html>

上面的程式碼實現了我們的要求,其實ES2015也可以實現此功能,具體可以參閱Array.from()一章節。

相關閱讀:

(1).slice()方法可以參閱javascript slice()一章節。

(2).document.querySelectorAll()方法可以參閱document.querySelectorAll()一章節。

(3).map()可以參閱Array map()方法一章節。

相關文章