我有三个div,类名为.column
,在底部,在我的身体标记之前我有一个小脚本,应该是得到这些div并将它们放入一个数组中,以便我可以对它们进行处理。我之前做过这个,所以我不知道可能是什么原因导致。Array.prototype.splice.call - 不使用querySelectorAll('。className')
var columns = Array.prototype.splice.call(document.querySelectorAll('.column'));
document.write("Size: " + columns.length);
上述代码特别Array.prototype.splice.call(document.querySelectorAll('.column'));
应该把由querySelectorAll
返回到一个可行的阵列的节点列表。但是,每当我写入var columns
的长度时,它总是返回,这是不可能的,因为我有三个div。 现在,当我这样做:
var columnsNodes = document.querySelectorAll('.column'); document.write(columnsNodes.length);
我把它写入它返回的文件,这是正确的。这导致我相信有关将节点列表转换为数组的操作不起作用,这很奇怪,因为我之前曾多次完成该操作。有没有人有任何想法可能造成这种情况?
的东西,我已经做了:
- 检查拼写多次调用如之前
- 插入父DIV:
('.parentDiv .column');
- 删除与
.column
没有奏效相关的标识的,请给我你的意见。
请包括您的HTML以及此问题的[编辑]。 – Scimonster 2015-03-03 12:43:42
我通过添加第二个参数来得到它的效果:'Array.prototype.splice.call(document.querySelectorAll('。column'),null);' – zvona 2015-03-03 12:43:47
*上面的代码应该是将节点list'由'querySelectorAll'返回到一个可工作的数组*。嗯,那将是'slice()',然后,而不是'splice()'。 – 2015-03-03 12:44:56