着色标签中的子字符串

我有以下标签元素,我希望星号为红色。

 

如何使用jQuery或其他方式完成?

 var label = document.getElementById('labelId'); label.innerHTML = label.innerHTML.replace('*', '*'); 

不需要汇编(也就是jQuery):-)

你可以使用jQuery做到这一点

 $('#labelId').html( $('#labelId').text().replace('*', '*') ); 

如果您可以更改文本,CSS可能是更好的选择: http : //jsfiddle.net/VwLQM/ 。

 label:after { color: red; content: "*"; } 

然后会自动产生红色*

:after 在IE8上没有完全工作 :after ,这可能是一个需要考虑的重要事情。

虽然这可能有点复杂,但它确实给你一点摆动空间来标记元素中的红色星号,而不仅仅是文本内部的文本,并且可能会减少在不同浏览器中的麻烦。

http://jsfiddle.net/QjJmT/

 $(function(){ var elements = $('label'); var markup_element = $('*'); elements.each(function(){ //wrap the element in a jquery object and get it's text string var element = $(this); var element_text = element.text(); //use regex to use the * as a delimeter var other_parts = element_text.split(/\*/); //empty the element re-add each part programmatically element.empty(); for( var i = 0; i < other_parts.length; i++ ){ element.append( other_parts[i] ); if( i != other_parts.length - 1 ){ element.append( markup_element ); } } }); }); 

希望有所帮助!