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

时间:2015-01-25 09:50:09

标签: javascript jquery dom

我想在他们的&#; 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);
&#13;
&#13;
&#13;

并在jQuery中:

&#13;
&#13;
$(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);
    }
});
&#13;
&#13;
&#13;

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

2 个答案:

答案 0 :(得分:2)

您可以使用此代码

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

答案 1 :(得分:0)

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

$(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);
    }
});