我有三个div,类名为.column
,位于底部,在我的body标签之前我有一个小脚本应该得到这些div并将它们放入一个数组中以便我可以继续工作他们。我以前做过这个,所以我不知道这次可能导致这个问题 。
var columns = Array.prototype.splice.call(document.querySelectorAll('.column'));
document.write("Size: " + columns.length);
以上代码特别是Array.prototype.splice.call(document.querySelectorAll('.column'));
应该将querySelectorAll
返回的节点列表转换为可行的数组。但是,每当我写var columns
的长度时,它总是返回 0 ,这是不可能的,因为我有三个div与该类。
现在,当我这样做时:
var columnsNodes = document.querySelectorAll('.column');
document.write(columnsNodes.length);
我将其写入返回 3 的文档,这是正确的。这让我相信有关将节点列表转换为数组的问题是行不通的,这很奇怪,因为我以前曾多次这样做过。有谁知道造成这种情况的原因是什么?
我做的东西:
('.parentDiv .column');
.column
没有任何效果,请给我你的意见。
答案 0 :(得分:0)
splice()方法在数组中添加/删除项目,然后返回 删除的项目。
注意:此方法更改原始数组。
http://www.w3schools.com/jsref/jsref_splice.asp
你应该使用slice(),这样就不会尝试编写NodeList(这是不可能的)。