【问题标题】:Color code difference in 2 strings in jsfjsf中2个字符串的颜色代码差异
【发布时间】:2015-06-13 19:32:36
【问题描述】:

我有一个要求,我需要对两个字符串之间不同的字符进行颜色编码。 例如,如果两个字符串是 abcd1234dfabdc1256dg,则第一个字符串中位置 3、4、7、8、10 的字符需要显示为红色。

我正在使用Jsf 2.0richfaces 4,我需要这个解决方案在性能方面是可行的,因为这必须在大约 50 个字符串的循环中完成。 这些字符串是包含 50 行的丰富数据表中的列。 我应该在哪里调用 javascript 方法,以便丰富数据表中的一列得到颜色编码

【问题讨论】:

  • 这应该完全使用 JavaScript 和 CSS 来完成。 JSF 只是这个用例的 HTML 生成器。

标签: javascript html css jsf


【解决方案1】:

下面是 javascript 中的快速入门。 这将返回带有字母的<p> 标记,以及标有“不同”类的任何不同的跨度。

所以如果你有类似的css:

.different{
   /*color: red;*/
   font-weight:bold;
}

然后你运行diffString('abcd1234df','abdc1256dg') 得到这个:

abcd1234df

实际回报: <p>ab<span class='different'>c</span><span class='different'>d</span>12<span class='different'>3</span><span class='different'>4</span>d<span class='different'>f</span></p>

这是我的代码:

function diffString(originalString, compareString){    
  var returnString = "<p>";    
  for(var i=0, child; child=originalString[i]; i++){    
    if(child != compareString[i]){    
      returnString += "<span class='different'>" + child + "</span>";    
    }    
    else{    
      returnString += child;      
    }    
  }    
  returnString += "</p>";    
  return returnString;    
}    

【讨论】:

  • 感谢 Alan Files.. 我会尝试这种方法并返回
  • 嗨艾伦,这些字符串在屏幕上显示为丰富数据表的列。我应该在哪里调用 javascript 方法,以便丰富的列之一获得颜色编码
猜你喜欢
  • 1970-01-01
  • 2014-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多