【问题标题】:Iterate HTML table to highlight differences where cells have multiple comparison items迭代 HTML 表格以突出显示单元格具有多个比较项的差异
【发布时间】:2019-03-31 16:34:32
【问题描述】:

我想突出显示表的第一行和所有其他行之间的差异。

当表格中的每个单元格只有 1 个项目/比较时,我已经想出了如何实现这一点。但我想将此扩展到每个以“,”分隔的单元格的多重比较。

这是每个单元格的单个项目的代码。 https://jsfiddle.net/t19Lqbkn/ 使用以下代码:

 var table = document.getElementById("mytab1");
for (var i = 1, row; row = table.rows[i]; i++) {
     var matc = table.rows[1]
   for (var j = 0, col; col = row.cells[j]; j++) {
        if (col.innerHTML !== matc.cells[j].innerHTML){col.innerHTML = "<span style='color: red;'>" + col.innerHTML + "</span>";}


   }  
}

这是一个表格,每个单元格有多个项目。 https://jsfiddle.net/6c7s9mky/

正如您在第二个链接中看到的那样。第二行的第一列,只有项目“Eve”应该是红色的,第一列的最后一行应该没有红色文字。

【问题讨论】:

标签: javascript html


【解决方案1】:

String 和 Array 有很多很酷的方法

这里是一个例子:

const base = "with,hello,string"
let comparison = "string,with,comma";
comparison = comparison.split(",").map(str => 
        base.indexOf(str) !== -1?`<span style="color:red;">${str}</span>`:str
    ).join(",");

您还可以使用 RegExp 找到一种方法。

【讨论】:

  • 您好,谢谢您的回答。您能解释一下 map() 方法中的代码吗?我不熟悉“=>”符号。 ${str} 是 Jquery 代码吗?请对该代码的解释将非常有帮助。
  • 这里官方文档:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…这个方法只是返回每个元素的新数组函数,这里函数返回一个新字符串或旧字符串,=>函数只是一个简单的方法匿名函数,${} 避免“开始”+变量+“结束”
猜你喜欢
  • 1970-01-01
  • 2023-03-25
  • 2022-10-04
  • 1970-01-01
  • 2021-08-25
  • 2012-09-12
  • 2017-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多