DOM元素数组的Javascript拼接

标签 javascript arrays

var myArray = [];
myArray = document.querySelectorAll('.selected');

当我调用 myArray.splice - 它是未定义的。我怎样才能避免这种情况?我需要从该数组中删除一些 DOM 元素。

最佳答案

问题是 querySelectorAll(..) 返回一个节点列表 (NodeList) -- 而不是标准的 JS 数组。

也许你想要像下面这样的东西:

Array.prototype.slice.call(document.querySelectorAll('.selected'),  <begin>, <end>);

更新

我错过了您要删除的部分,谢谢@torazaburo。幸运的是,您可以直接在 NodeList 上应用过滤器,而不是通过数组转换。如下所示:

var arrayOfNodes = [].filter.call(document.querySelectorAll(".selected"), function(curNodeItem) {
     return shouldCurrentNodeBeRetained(curNodeItem)? true : false;
    //expanded for clarity.    
});

关于DOM元素数组的Javascript拼接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27637074/

相关文章:

javascript - 如何根据相等的属性值合并对象数组?

javascript - Chart.js无法显示数据

javascript - 函数不扣除第一个值

javascript - 使用按钮 onclick 计算正确答案

javascript - 将表格数据输入新组件时,表格数据未与表格标题内联

PHP 数组作为单独的行插入到 MySQL 表中

arrays - Array() 上的 .to_json 在 Crystal 中不起作用

c++ - 为什么这两种多维数组的实现执行时间相差这么大呢?

javascript - 嵌套在ng-repeat中的拼接数组,

javascript - 带代表符号的排序表