着色标签中的子字符串
我有以下标签元素,我希望星号为红色。
如何使用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
,这可能是一个需要考虑的重要事情。
虽然这可能有点复杂,但它确实给你一点摆动空间来标记元素中的红色星号,而不仅仅是文本内部的文本,并且可能会减少在不同浏览器中的麻烦。
$(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 ); } } }); });
希望有所帮助!