如何在 DOM 加载后使用 JavaScript 或 JQuery 从 href 属性中删除字符

How to delete a character from href attribute using JavaScript or JQuery after DOM loaded?

本文关键字:href JQuery 属性 字符 删除 JavaScript DOM 加载      更新时间:2023-09-26

我想在它们的"href"值中使用一些带有特殊字符的链接......

例如,链接是:www.my*blog.com

当文档加载时,"*"将被JavaScript或jQuery函数删除。

我使用了两个函数:

document.addEventListener('DOMContentLoaded', function() {
    var i=0,j='',val='';
    var list = document.getElementsByTagName("a");
    for(i;i<=list.length;i++)
    {
      j=list[i].getAttribute("href");
      val = j.replace('*','');
      list[i].setAttribute('href',val);
    }
}, false);

在jQuery中:

$(document).ready(function()
{
    var i=0,j='',val='';
    var list = document.getElementsByTagName("a");
    for(i;i<=list.length;i++)
    {
      j=$(list[i]).attr('href');
      val = j.replace('*','');
      $(list[i]).attr('href',val);
    }
});

但是在某些情况下,此功能无法正常工作...

您可以使用此代码

jQuery(document).ready(function() {
  jQuery("a[href*='*']").each(function() {
    jQuery(this).attr("href", jQuery(this).attr("href").replace(/'*/g, ""));
  });
});

更正了循环条件,因为它正在执行循环一次额外的迭代:

$(document).ready(function()
{
    var i=0,j='',val='';
    var list = document.getElementsByTagName("a");
    for(i;i<list.length;i++)//for(i;i<=list.length;i++)
    {
      j=$(list[i]).attr('href');
      val = j.replace('*','');
      $(list[i]).attr('href',val);
    }
});