清空NodeList

时间:2015-05-16 09:46:08

标签: javascript removechild splice nodelist

我在javascript中有这段代码

var variables = document.getElementsByClassName('highlight');
var array = [];
while(variables.length > 0){
  array.push(variables[0].innerHTML);
  //Variables 0th index must remove here
}

我想删除节点列表variables的第0个索引。 与数组中的splice方法类似。

2 个答案:

答案 0 :(得分:2)

使用shift()并确保将nodeList转换为数组

var nodeList = document.getElementsByClassName('highlight');
var variables = Array.prototype.slice.call(nodeList);//convert to array

var array = [];
while(variables.lenght > 0){
  array.push(variables[0].innerHTML);
  variables.shift();
}

demo

答案 1 :(得分:0)

使用常规的旧for循环:

var variables = document.getElementsByClassName('highlight');
var array = [];
while (var i = 0; i < variables.length; i++) {
  array.push(variables[i].innerHTML);
}

在现代JS中,可以使用map代替:

function getInnerHtml(elt) { return elt.innerHTML; }

Array.prototype.map.call(variables, getInnerHtml);