javascript - 替换多个链接

标签 javascript jquery

我正在尝试替换多个链接,但只替换了第一个链接, 其他所有保持不变。

function rep(){
    var text = document.querySelector(".link").querySelector("a").href;

    var newText = text.replace(/http:\/\/test(.*)http:\/\/main(.*)com/, 'http://google$2com');

    document.querySelector(".link").querySelector("a").href = newText;
}

有什么建议吗?

我正在谈论的 .link 元素内有多个 a href 链接。

最佳答案

你的错误在于使用querySelector,所以document.querySelector(".link").querySelector("a")字面意思是:给我第一个a在第一个 .link 内;

使用querySelectorAll;您可以组合这两个选择器:

普通 JS:

[].forEach.call(document.querySelectorAll('.link a'), function(a){
    a.href = a.href.replace(/http:\/\/test(.*)http:\/\/main(.*)com/, 'http://google$2com');
});

或者,由于您会更频繁地选择项目,因此需要一些实用程序:

function $$(selector, ctx){
    return Array.from((ctx && typeof ctx === "object" ? ctx: document).querySelectorAll(selector));
}

$$('.link a').forEach(function(a){
    a.href = a.href.replace(/http:\/\/test(.*)http:\/\/main(.*)com/, 'http://google$2com');
})

或者在 jQuery 中:

$('.link a').each(function(){
    this.href = this.href.replace(/http:\/\/test(.*)http:\/\/main(.*)com/, 'http://google$2com');
});

关于javascript - 替换多个链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39735452/

相关文章:

javascript - 在 JavaScript 中添加事件监听器

javascript - 在 ('change' 上)功能不起作用

javascript - 动态访问变量

javascript - History.js 和重新加载 Javascript

javascript - 需要在下拉选项中创建评论

javascript - 使用 foreach 通过 Ajax 和动态表单进行发布

javascript - 垂直内嵌行情自动收录器

javascript - 数据集返回 JavaScript AngularJS

jQuery li 图像在背景中淡入淡出(在类中淡入淡出)

javascript - 设置另一个对象的属性时自动更新 JavaScript 对象属性