Javascript 如何在div中重复添加html,但保留原有的html?
使用jQuery的Javascript,我想一次又一次地用一个文本字符串交换一个html标记,而不会丢失以前的htmlJavascript 如何在div中重复添加html,但保留原有的html?,javascript,jquery,replace,Javascript,Jquery,Replace,使用jQuery的Javascript,我想一次又一次地用一个文本字符串交换一个html标记,而不会丢失以前的html 这是文本和更多文本 function rep() { var t = $('p').text().replace('text', '<b>html</b>'); $('p').html(t); } 这是文本和更多文本 function rep() { var t = $('p').text().replace('text'
这是文本和更多文本
function rep() {
var t = $('p').text().replace('text', '<b>html</b>');
$('p').html(t);
}
这是文本和更多文本
function rep() {
var t = $('p').text().replace('text', '<b>html</b>');
$('p').html(t);
}
函数rep(){
var t=$('p').text().replace('text','html');
$('p').html(t);
}
理想的情况是:
<p>This is <i id="text"><b>html</b></i> and more <b>html</b></p>
这是html和更多html
这是html和更多的html
我不想更改预先存在的html<代码>应该保留在html中,无论我运行函数多少次
.html().replace(..
不起作用,因为它会抓取id=“text”
。谢谢。您需要使用.html()
,而不是.text()
,来获取旧值,因为后者会忽略所有html标记。您可以在一次调用中完成此操作,使用函数从旧值计算替换:
function rep() {
$('p').html(function(i, oldhtml) {
return oldhtml.replace(/(<[^>]*)?text/g, function($0, $1) {
return $1 ? $0 : '<b>html</b>';
});
});
}
函数rep(){
$('p').html(函数(i,oldhtml){
返回oldhtml.replace(/(]*)?text/g,函数($0,$1){
返回$1?$0:'html';
});
});
}
请注意,您必须使用带有
g
修饰符的正则表达式来执行字符串中的多个替换。反向查找是排除id=“text”
的正常方法,但这不可用。我使用了中的解决方法,您需要使用.html()
,而不是.text()获取旧值
,因为后者省略了所有HTML标记。您可以在一次调用中完成此操作,使用函数从旧值计算替换值:
function rep() {
$('p').html(function(i, oldhtml) {
return oldhtml.replace(/(<[^>]*)?text/g, function($0, $1) {
return $1 ? $0 : '<b>html</b>';
});
});
}
函数rep(){
$('p').html(函数(i,oldhtml){
返回oldhtml.replace(/(]*)?text/g,函数($0,$1){
返回$1?$0:'html';
});
});
}
请注意,您必须使用带有g
修饰符的正则表达式来执行字符串中的多个替换。反向查找是排除id=“text”
的正常方法,但这不可用。我使用了中的解决方法,您需要使用.html()
,而不是.text()获取旧值
,因为后者省略了所有HTML标记。您可以在一次调用中完成此操作,使用函数从旧值计算替换值:
function rep() {
$('p').html(function(i, oldhtml) {
return oldhtml.replace(/(<[^>]*)?text/g, function($0, $1) {
return $1 ? $0 : '<b>html</b>';
});
});
}
函数rep(){
$('p').html(函数(i,oldhtml){
返回oldhtml.replace(/(]*)?text/g,函数($0,$1){
返回$1?$0:'html';
});
});
}
请注意,您必须使用带有g
修饰符的正则表达式来执行字符串中的多个替换。反向查找是排除id=“text”
的正常方法,但这不可用。我使用了中的解决方法,您需要使用.html()
,而不是.text()获取旧值
,因为后者省略了所有HTML标记。您可以在一次调用中完成此操作,使用函数从旧值计算替换值:
function rep() {
$('p').html(function(i, oldhtml) {
return oldhtml.replace(/(<[^>]*)?text/g, function($0, $1) {
return $1 ? $0 : '<b>html</b>';
});
});
}
函数rep(){
$('p').html(函数(i,oldhtml){
返回oldhtml.replace(/(]*)?text/g,函数($0,$1){
返回$1?$0:'html';
});
});
}
请注意,您必须使用带有g
修饰符的正则表达式来执行字符串中的多个替换。反向查找是排除id=“text”
的正常方法,但这不可用。我使用了中的解决方法告诉我此代码是否符合您的需要(为了方便起见,我多次重复使用input
):
有关正则表达式的更多信息:。告诉我此代码是否符合您的需要(为了方便起见,我多次重复使用输入):
有关正则表达式的更多信息:。告诉我此代码是否符合您的需要(为了方便起见,我多次重复使用输入):
有关正则表达式的更多信息:。告诉我此代码是否符合您的需要(为了方便起见,我多次重复使用输入):
有关正则表达式的详细信息:.使用.html()
而不是.text()
,您将获得所有html。@Barmar如果我不清楚,我很抱歉,但我不想更改预先存在的html。因此,如果我使用.html()然后我将更改id='text'
标记,这是我不想做的。哦,这会让事情变得更复杂。这个问题可能会有帮助:谢谢@Barmar,我很感激使用.html()
而不是.text()
你会得到所有的HTML。@Barmar如果我不清楚,我很抱歉,但我不想更改预先存在的HTML。因此,如果我使用.HTML(),我会更改id='text'
标记,我不想这样做。哦,这会使事情变得更复杂。这个问题可能会有帮助:谢谢@Barmar我感谢你使用.HTML()
而不是.text()
,您将获得所有HTML。@Barmar如果我不清楚,我很抱歉,但我不想更改预先存在的HTML。因此,如果我使用.HTML()然后我将更改id='text'
标记,这是我不想做的。哦,这会让事情变得更复杂。这个问题可能会有帮助:谢谢@Barmar,我很感激使用.html()
而不是.text()
您将获得所有HTML。@Barmar如果我不清楚,我很抱歉,但我不想更改预先存在的HTML。因此如果我使用.HTML()然后我会更改id='text'
标记,这是我不想做的。哦,这会让事情变得更复杂。这个问题可能会有帮助:谢谢@Barmar,我很感激它一下子替换了所有的文本,包括我想保留的
。我不想更改预先存在的html。@wared是的,刚刚意识到。我我将合并到这个正则表达式的解决方案中:/(]*?)?text/g
?“text-texttext”->“azerty-azertyazerty”
因为
不是有效的HTML标记,这看起来像是overkill.Loo