Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在div中重复添加html,但保留原有的html?_Javascript_Jquery_Replace - Fatal编程技术网

Javascript 如何在div中重复添加html,但保留原有的html?

Javascript 如何在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'

使用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', '<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