我有一些数据,由于其输出方式,只能以特定方式排序。
我有一个表格,其中包含如下文本字符串
MyTextString_MyTextString
MyTextString_MyTextString
MyTextString_MyTextString
为了使其更具可读性,我希望将 _
之前的文本着色为红色,将 _
之后的文本着色为蓝色。这可以用 jquery 或 php 实现吗?
我尝试过诸如 $('.myElement').find('_').css('color','red);
之类的东西,但不认为这是正确的方法。
是否可以只执行一次,例如如果有另一个文本字符串,它将保持第二种颜色,蓝色?即 Red_Blue_Blue_Blue(计数 = 1?)
标记示例。
<td class="myTextString1">
MyTextString_MyTextString1
<br/>
MyTextString_MyTextString2
<br/>
MyTextString_MyTextString3
</p>
最佳答案
我做了一个 fiddle 来展示(在我看来)一个很好的方法来做到这一点。 Here is the fiddle
有两个插件,一个扩展 String.prototype,另一个扩展 jQuery.fn。通过这种方式,您可以从字符串和元素中调用“.colorize()”。我在 fiddle 中包含了一些示例。
String.prototype.colorize = function () {
var regex = new RegExp('[^_]+', 'gi'),
color = $.extend(['blue', 'red'], arguments || []),
index = 0;
return this.replace(regex, function(matched) {
return '<span style="color: ' + color[index++] + ';">' + matched + '</span>';
});
}
$.fn.colorize = function () {
var args = arguments;
return this.each(function () {
this.innerHTML = this.innerHTML.colorize
.apply(this.innerHTML, args);
});
}
希望这有帮助!
关于php - 为特定字符之前和之后的文本字符串着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12474117/