我想从此处更改输出块:
<div>Lorem ipsum dolor sit amet (consectetuer adipiscing elit sed diam nonummy nibh euismod tincidunt)</div>
到此:
<div>Lorem ipsum dolor sit amet <span class="italics">(consectetuer adipiscing elit sed diam nonummy nibh euismod tincidunt)</span></div>
JavaScript的:
var div = $('div');
var matches = div.match(/\((.*?)\)/);
if (matches) {
matches.css('color', 'red');
}
基本上,使用正则表达式使用addClass将所有内容包装在(此处)中。有什么想法吗?
答案 0 :(得分:1)
您可以使用html
方法:
$('div').html(function(i, h){
return h.replace(/\((.*?)\)/, '<span class="italics">$&</span>');
})
答案 1 :(得分:0)
试试这个:
div = $('div');
div.html(div.text().replace(/\([^)]+\)/g, '<span class="italics">$&</span>'));
现场演示:
答案 2 :(得分:0)
这应该可以胜任:http://jsfiddle.net/cqTq7/2/
这是我的代码:
var div = $('div'),
divHTML = div.html();
var match = divHTML.match(/\((.*?)\)/);
divHTML = divHTML.replace(match[0], '<span class="italics">$&</span>');
div.html(divHTML);
请注意,match
函数是JavaScript中的函数,而不是jQuery。在这里,我还使用JavaScript replace
函数。