【问题标题】:Changing text color using replace method使用替换方法更改文本颜色
【发布时间】:2016-09-07 00:43:55
【问题描述】:

当用户单击单元格值时,我在单击处理程序中使用以下代码(如下面的 JSFiddle 所示)替换文本:

  var value = event.args.value;
  var color = "#FF0000";

  var highlighted = text.replace(
                ' ' + value + ' ', 
                "<span style='color:" + color + ";'</span> "
              );

  panel.jqxPanel('clearcontent');
  panel.jqxPanel('append', highlighted);

第一季度: 它的行为方式不同。我的意思是,当我单击第一个单元格值时,它会将所有内容转换为红色,单击其他值会使其行为方式不同,如我的 JSFiddle here

第二季度。我可以使用什么来保留 html 格式?我的意思是使用 var text = panel.html(); 而不是 var text = panel.text(); 对我不起作用。

【问题讨论】:

    标签: javascript jquery str-replace


    【解决方案1】:

    您缺少跨度标记上的结束 &gt;,并且您省略了从 var value = event.args.value; 获得的 value,因此该词丢失了。

    var highlighted = text.replace(
                ' ' + value + ' ', 
                ' <span style="color:' + color + ';">' + value + '</span> '
    //                                              ^    ^^^^^
    

    注意,我还更改了使用的引号字符,以便 HTML 可以使用在标记中更常用的双引号 ",并且 javascript 不关心字符串的单引号或双引号 - 使用任何你喜欢的,为了您自己的理智,请保持一致。

    试试我创建的updated fiddle,只更改那一行,你会看到你点击的单词被突出显示。


    也就是说,通常最好避免像 color="#FF0000" 这样的内联样式,而是使用类和 CSS 样式来代替它们。相反,您可以使用更简单的代码,而不必将 var color 放入其中:

    var highlighted = text.replace(
                ' ' + value + ' ', 
                ' <span class="selected">' + value + '</span> '
    

    您的 CSS 将有一个规则 span.selected { color: #FF0000; } ... 然后,将您的突出显示颜色从红色重新设置为其他颜色,您只需更改 CSS 而不必更改您的 javascript 代码。

    【讨论】:

    • 感谢您的回答。你有没有机会知道,我应该怎么做才能保留 HTML 的格式?
    • 如果我将格式化代码放入 html 的 &lt;pre&gt; 标记中,你知道它为什么停止工作吗?让我知道您是否需要我所指的 JSfiddle?
    • @John 我不确定你在第二季度的意思,或者你现在的意思。当您在浏览器中执行 text.replace 时,而不是原始 HTML 源代码,因此实际 HTML 文本源的格式/布局是无关紧要的。如果这不是你的意思,也许你应该开始一个新的问题,你可以提供很多细节。
    • 不错的答案。请注意:HTML 不“喜欢”属性值周围的双引号。它们可能比单引号更常用,但single and double quotes are equally valid.
    • 谢谢@MichaelGeary - 你当然是对的。我的答案改变了。
    猜你喜欢
    • 2020-02-24
    • 2017-03-12
    • 2012-04-30
    • 2011-02-25
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多