Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.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将单词替换为超链接?_Javascript_Html_Jquery_Css_Ajax - Fatal编程技术网

如何使用javascript将单词替换为超链接?

如何使用javascript将单词替换为超链接?,javascript,html,jquery,css,ajax,Javascript,Html,Jquery,Css,Ajax,我想在我的网站上的每一篇帖子上用超链接替换一个词(仅1次),以我的例子就是“罗纳尔多”。因此,我使用了以下代码 document.body.innerHTML = document.body.innerHTML.replace('Ronaldo', '<a href="www.ronaldo.com">Ronaldo</a>'); document.body.innerHTML=document.body.innerHTML.replace('罗纳尔

我想在我的网站上的每一篇帖子上用超链接替换一个词(仅1次),以我的例子就是“罗纳尔多”。因此,我使用了以下代码

document.body.innerHTML = document.body.innerHTML.replace('Ronaldo', '<a href="www.ronaldo.com">Ronaldo</a>');
document.body.innerHTML=document.body.innerHTML.replace('罗纳尔多','');
在我注意到这个问题之前,这确实很有效

它甚至在
文章标题
中替换了“罗纳尔多”这个词,而我只想让它替换
文章正文
中的这个词

这里是我的代码的一瞥,这样您可以更好地理解

[更新]

如果有人提出一种解决这个问题的方法,那将非常有帮助。我之所以标记jquery和ajax,是因为它们也知道javascript


注意:到目前为止,我们没有使用任何类、ID和标记,比如
POST-BODY
p
,除了
POST-TITLE
用于格式化之外

假设您的
POST-BODY
元素没有任何类名,我们可以使用
.getElementsByTagName()
查询它们,然后用链接替换文本

postBodyElems=document.getElementsByTagName(“p”);
对于(变量i=0;i
。文章标题{
字体大小:20px;
}
.警告{
颜色:红色;
}
a{
颜色:蓝色;
}

罗纳尔多成为2020年最炙手可热的球员

罗纳尔多(我想把这段文字变成超链接)多斯桑托斯·阿维罗·戈伊·康姆(葡萄牙语发音:kɾIʃtjɐnuʁɔnaɫdu),生于1985年2月5日)是一名葡萄牙职业足球运动员,在意甲担任前锋 尤文图斯俱乐部,葡萄牙国家队队长。罗纳尔多经常被认为是世界上最好的球员,也被广泛认为是有史以来最伟大的球员之一,他赢得了五项金球奖[注3]和四项欧洲金靴奖, 这两项都是欧洲球员的记录。他在职业生涯中赢得了30座主要奖杯,包括7座联赛冠军、5座欧洲冠军联赛冠军、1座欧洲冠军联赛冠军和1座欧洲联盟国家联赛冠军。罗纳尔多保持着世界纪录 欧洲冠军联赛历史上进球最多(134个)和助攻最多(41个)。[11]他是少数几个职业生涯出场次数超过1000次的有记录球员之一,为俱乐部和国家队打进了750多个职业生涯进球。[12]
他也是第二个打进100个国际比赛进球的球员,也是第一个实现这一壮举的欧洲人。[13]

你需要使用
replaceAll
而不是
replace

document.body.innerHTML = document.body.innerHTML.replaceAll('Ronaldo', '<a href="https://en.wikipedia.org/wiki/Cristiano_Ronaldo">Cristiano Ronaldo</a>');
如果您不想更改class
post title
中的文本,可以使用
not
查询选择器-

document.querySelector("p:not(.post-title)").innerHTML = 
document.querySelector("p:not(.post-title)").innerHTML.replaceAll('Ronaldo', '<a href="https://en.wikipedia.org/wiki/Cristiano_Ronaldo">Cristiano Ronaldo</a>');
document.querySelector(“p:not(.post title)”)。innerHTML=
document.querySelector(“p:not(.post title)”).innerHTML.replaceAll('罗纳尔多','');
这将只选择第一个
p
,它没有类
post title

如果您不仅仅有
p
标记,那么请使用
querySelectorAll
然后迭代该标记以替换文本


或者,您可以向内容添加不同的类,并在查询选择器中使用该类。

如果不想更改整个文档,请不要从DOM中获取整个内容。你说你只是想换个帖子的主体。所以给帖子主体一个id(这样我们就可以在js中抓取帖子主体)并只更改它的内容

注意:要替换所有出现的“罗纳尔多”,请使用
replaceAll(“word To replace”)
函数

document.getElementById(“post body”).innerHTML=document.getElementById(“post body”).innerHTML.replaceAll('罗纳尔多','')
。文章标题{
字体大小:20px;
}
.警告{
颜色:红色;
}
a{
颜色:蓝色;
}

罗纳尔多成为2020年最炙手可热的球员

罗纳尔多[我想把这段文字变成超链接]dos Santos Aveiro GOIH ComM(葡萄牙语发音:[kɾIʃˈtjɐnuʆˈnaɫdu],生于1985年2月5日)是一名葡萄牙职业足球运动员,在意甲担任前锋 尤文图斯俱乐部,葡萄牙国家队队长。罗纳尔多经常被认为是世界上最好的球员,也被广泛认为是有史以来最伟大的球员之一,他赢得了五项金球奖[注3]和四项欧洲金靴奖, 这两项都是欧洲球员的记录。他在职业生涯中赢得了30座主要奖杯,包括7座联赛冠军、5座欧洲冠军联赛冠军、1座欧洲冠军联赛冠军和1座欧洲联盟国家联赛冠军。罗纳尔多保持着世界纪录 欧洲冠军联赛历史上进球最多(134个)和助攻最多(41个)。[11]他是少数几个职业生涯出场次数超过1000次的有记录球员之一,为俱乐部和国家队打进了750多个职业生涯进球。[12] 他也是第二个在国际比赛中打进100粒进球的球员,也是第一个实现这一壮举的欧洲人。[13]

只要改变就行了

文件正文

document.getElementById(“ID”)//相应的元素ID,即您的段落

document.getElementById(“post body”).innerHTML=document.getElementById(“post body”).innerHTML.replaceAll('罗纳尔多','')
。文章标题{
字体大小:20px;
}
.警告{
颜色:红色;
}
a{
颜色:蓝色;
}

罗纳尔多成为2020年最炙手可热的球员

罗纳尔多[我想把这段文字变成一个超链接]多斯桑托斯·阿维罗·戈伊·康姆(葡萄牙语发音:[kɾIʃˈtjɐnuʆˈnaɫdu];生于1985年2月5日)是一名葡萄牙职业足球运动员,在意甲俱乐部尤文图斯担任前锋,并担任葡萄牙国家队队长。罗纳尔多经常被认为是世界上最好的球员,也被广泛认为是有史以来最伟大的球员之一,他赢得了五项金球奖[注3]和四项欧洲金靴奖,

document.querySelector("p:not(.post-title)").innerHTML = 
document.querySelector("p:not(.post-title)").innerHTML.replaceAll('Ronaldo', '<a href="https://en.wikipedia.org/wiki/Cristiano_Ronaldo">Cristiano Ronaldo</a>');