通过Javascript将HTML中的电话号码替换为CurinerHTML

通过Javascript将HTML中的电话号码替换为CurinerHTML,javascript,Javascript,通过JavaScript将HTML中的电话号码替换为CurinerHTML 此代码仅替换网站上的一些电话号码,而不是全部 (我更喜欢只使用JavaScript的解决方案) 也不是替换网站上的活动电话URL,你可以 这是密码 <script type="text/javascript"> var curInnerHTML = document.body.innerHTML; curInnerHTML = curInnerHTML.replace(&qu

通过JavaScript将HTML中的电话号码替换为CurinerHTML 此代码仅替换网站上的一些电话号码,而不是全部

(我更喜欢只使用JavaScript的解决方案)

也不是替换网站上的活动电话URL,你可以

这是密码

       <script type="text/javascript">
var curInnerHTML = document.body.innerHTML;
curInnerHTML = curInnerHTML.replace("(678) 737-6367", "(678) 839-9838");
curInnerHTML = curInnerHTML.replace("(678)737-6367", "(678) 839-9838");
curInnerHTML = curInnerHTML.replace("tel:6787376367", "tel:6788399838");
document.body.innerHTML = curInnerHTML;
        </script>

var curInnerHTML=document.body.innerHTML;
curInnerHTML=curInnerHTML.替换(“(678)737-6367),“(678)839-9838”);
curInnerHTML=curInnerHTML.替换(“(678)737-6367),“(678)839-9838”);
curInnerHTML=curInnerHTML.replace(“电话:6787376367”,“电话:6788399838”);
document.body.innerHTML=curInnerHTML;
这是HTML-只需将URL替换为新手机的内容(电话:6788399838)


您应该更换整个a标签

var curInnerHTML=document.body.innerHTML;
curInnerHTML=curInnerHTML.替换(“”,”);
document.body.innerHTML=curInnerHTML
正文{
背景:蓝色
}

使用document.queryselectoral只针对您需要的元素

document.querySelectorAll('a[href="tel:6787376367"]').forEach(el => {
    el.href="tel:6788399838";
    el.innerHTML = el.innerHTML.replace(/\(678\)\s?737-6367/, '(678) 839-9838');
});
纯文本的备选方案-应在上述步骤之后运行

document.querySelectorAll('p').forEach(el => {
    if (el.innerHTML.includes('737-6367')) {
        el.innerHTML = el.innerHTML.replace(/\(678\)\s?737-6367/, '(678) 839-9838');
    }
});
(假设纯文本位于
中)

当然,如果您必须支持Internet Explorer

document.querySelectorAll('a[href="tel:6787376367"]').forEach(function(el) {
    el.href="tel:6788399838";
    el.innerHTML = el.innerHTML.replace(/\(678\)\s?737-6367/, '(678) 839-9838');
});
但IE也需要以下polyfill

if (window.NodeList && !NodeList.prototype.forEach) {
    NodeList.prototype.forEach = function (callback, thisArg) {
        thisArg = thisArg || window;
        for (var i = 0; i < this.length; i++) {
            callback.call(thisArg, this[i], i, this);
        }
    };
}
if(window.NodeList&!NodeList.prototype.forEach){
NodeList.prototype.forEach=函数(回调,thisArg){
thisArg=thisArg | |窗口;
for(var i=0;i
根据评论:

对于电话号码的非链接实例,最好将任何实例放在一个范围内,如
xxxxxx

那么上面的代码可以是

document.querySelectorAll('a[href="tel:6787376367"], .ourTelephone').forEach(el => {
    if (el.href) { // only <a> tags have href
        el.href="tel:6788399838";
    }
    el.innerHTML = el.innerHTML.replace(/\(678\)\s?737-6367/, '(678) 839-9838');
});
document.querySelectorAll('a[href=“tel:6787376367”],.ourTelephone').forEach(el=>{
如果(el.href){//只有标记有href
el.href=“电话:6788399838”;
}
el.innerHTML=el.innerHTML.replace(/\(678\)\s?737-6367/,'(678)839-9838');
});

因此,要明确的是,您想要获取一个电话号码并将其插入到
标记中,并用该链接替换innerHTML?您必须使用带有
g
标志的正则表达式来替换所有出现的模式。为什么要通过客户端代码更改电话号码?这通常是在它到达浏览器之前完成的——由开发人员或数据库调用和服务器端模板完成。如果数字仅出现在该标记中,请不要弄乱整个文档的innerHTML
document.querySelector('a[href=“tel:6787376367”]”)
将检索该元素,您可以直接设置所需的值,而无需使用replace-如果标记多次出现,请使用
document.querySelector('a[href=“tel:6787376367”]”)。forEach(el=>…)
要进行更改,我只需要替换电话号码(678)737-6367到new one和url电话:6787376367-你能提供一些代码示例吗?谢谢你刚刚添加的代码不起作用-你可以在这里看到这也不起作用,因为在每个页面上元素都有不同的类和id我看到了..但它对正确的id起作用..检查此部分,但你已经有了更好的解决方案..来自Jaromanda:)问题中的页面有4次href和3次文本…这是我所需要的-我一直在寻找的,谢谢。还有一个问题是没有活动链接的纯文本。我是否可以对纯文本应用相同的功能(将(678)737-6367替换为(678)839-9838)?内容中的示例有用的是将该文本放在类似
。。。如果你能做到这一点,我可以更新答案,向你展示如何将其添加到代码中——否则,如果数字只出现一次,你就必须运行原始代码(或者在原始代码中使用.replaceAll而不是.replace)@IvanDern-我已经更新了答案,假设您可以将纯文本电话包装成一个spans,这将是最简单的方法-并且该电话没有包装在元素中-但是如果您在我的代码之后运行原始代码,那么它也应该工作
document.querySelectorAll('a[href="tel:6787376367"], .ourTelephone').forEach(el => {
    if (el.href) { // only <a> tags have href
        el.href="tel:6788399838";
    }
    el.innerHTML = el.innerHTML.replace(/\(678\)\s?737-6367/, '(678) 839-9838');
});