您好我正在尝试编写jQuery replace
函数,该函数将替换HTML中的特定文本以创建类。
我找到了jQuery和Html。看到这个小提琴:http://jsfiddle.net/davidThomas/juTtG/20
它用<b>hello world!</b>
这很好,但我试图替换更多不同的文字,如下所示:
我修改了jQuery:
// this
var content = $("body").text().replace(/(\[this\])([\s\S]*)(\[\/this\])/gi,'<b>$2</b>');
console.log(content);
$("body").html(content);
// another
var content = $("body").text().replace(/(\[another\])([\s\S]*)(\[\/another\])/gi,'<b>$2</b>');
console.log(content);
$("body").html(content);
// more
var content = $("body").text().replace(/(\[more\])([\s\S]*)(\[\/more\])/gi,'<b>$2</b>');
console.log(content);
$("body").html(content);
修改HTML:
[this]hello world 1![/this] [another]hello world 2![/another] [more]hello world more![/more]
请参阅修改后的问题:http://jsfiddle.net/juTtG/384
问题是它替换了<b></b>
中替换一个文本字符
我试图替换更多不同的文字。
如何使这个修改过的jQuery和HTML工作。
另一个问题是,是否有可能替换为:
<div class="body"> Add a [newclass] </div>
要:
<div class="body">Add a <b class="newclass"></b> </div>
我希望有人可以给我一些建议作为尝试。
提前致谢。
答案 0 :(得分:1)
关注您的&#34; 修改后的HTML &#34;问题,请参阅this updated fiddle
这是修改过的脚本:
$(document).ready(function() {
var content = $("body")
.text()
.replace(/(\[[\s\S]*?\])/gi, '<b>')
.replace(/\[\/[\s\S]*?\]/gi, '</b>');
$("body").html(content);
});
它变成了这个:
[this]hello world 1![/this] [another]hello world 2![/another] [more]hello world more![/more]
进入这个:
<b>hello world 1!<b> <b>hello world 2!<b> <b>hello world more!<b>
为此:
<div class="body"> Add a [newclass] </div>
请参阅this fiddle
使用此脚本:
$(document).ready(function() {
var content = $("body")
.text()
.replace(/\[([\s\S]*?)\]/ig, '<b class="$1"></b>');
$("body").html(content);
});
做到这一点:
<div class="body">Add a <b class="newclass"></b> </div>
HTH,
-Ted