javascript - ES6中使用Array类方法进行HTMLCollection DOM遍历

标签 javascript ecmascript-6

我试图避免使用 jQuery 进行 DOM 操作。我更喜欢使用 ES6 功能。 ES6 有一个强大的数组类,因此我正在考虑将 HTMLCollection 对象转换为数组,然后使用 Array 类解析它们:

actual = [ '10/12/2018', 'Affidavit', 'Party', 7 ];
collection = Array.prototype.slice.call( document.querySelector('#tblEvents').rows )
target_row = collection.find(function(row){
  predicate = row.cells[0].innerText.trim() == actual[0] && row.cells[1].innerText.trim() == actual[1] && row.cells[4].innerText.trim() == actual[3];
  if(predicate){
    if(actual[2] !== null && actual[2] !== ''){
      return actual[2] == row.cells[2].innerText.trim();
    } else {
      return true;
    } 
  }

  return false;
})

我在这里使用的 es6 方法是 find()。但HTMLCollection没有这样的方法。

这是适合 ES6 的解决方案还是 HTMLCollection 类提供类似的东西?

最佳答案

最简单的方法是先使用Array.from将其转换为数组:

const collection = Array.from(document.querySelector('#tblEvents').rows);

关于javascript - ES6中使用Array类方法进行HTMLCollection DOM遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53729508/

相关文章:

javascript - 如何在不同的上下文中使用 es6 构造函数指令

javascript - 在 ES6 + Angular 1.4 指令中插入

javascript - 使用 Jquery 获取与条件匹配的第一个前一个元素

javascript - 将 URL 传递到 JSON 数组

javascript - 如何在 Javascript 中检查 html slider 值? (值-1 或值+1)

javascript - Discord.js没有播放YouTube网址

javascript - 使用导入时如何 stub ES6 node_modules?

javascript - 下载文件并在下载应用程序或 cordova 应用程序的通知中显示它

class - 定义没有setter ecma6的getter - react

javascript - ES6 TemplateUrl 类似 Angular2