我在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
方法类似。
答案 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();
}
答案 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);