使用替换方法更改文本颜色
Changing text color using replace method
我在点击处理程序中使用以下代码(如下面的 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);
Q1:
它以不同的方式表现。我的意思是,当我单击第一个单元格值时,它会将所有内容都转换为红色,单击其他值会使其以不同的方式运行,如我的 JSFiddle here
中所示
Q2。我可以使用什么来保留 html 格式?我的意思是使用 var text = panel.html();
而不是 var text = panel.text();
对我不起作用。
您在 span 标签上遗漏了结束 >
,并且您遗漏了从 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代码。
我在点击处理程序中使用以下代码(如下面的 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);
Q1: 它以不同的方式表现。我的意思是,当我单击第一个单元格值时,它会将所有内容都转换为红色,单击其他值会使其以不同的方式运行,如我的 JSFiddle here
中所示Q2。我可以使用什么来保留 html 格式?我的意思是使用 var text = panel.html();
而不是 var text = panel.text();
对我不起作用。
您在 span 标签上遗漏了结束 >
,并且您遗漏了从 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代码。