将nodeList像数组一样进行操作

# JS

因为divs是nodeList而不是array
nodeList是只读的,反映的是文档节点的实时结构;

1
2
console.log(divs instanceof Array);; //false
console.log(divs instanceof NodeList);//true

要想把nodeList像数组一样操作,得先把divs转换为array;

1
2

var divsArray = Array.prototype.slice.call(divs,0);

然后,交换“位置”,注意,这只是交换两个节点对象在数组中的位置,而不是在DOM中的位置

1
2
3
4
5
console.log("before:",divsArray);//[div#test, div#test2] 
var temp = divsArray[0];
divsArray[0] = divsArray[1];
divsArray[1] = temp;
console.log("after:",divsArray);//[div#test2, div#test]