【问题标题】:Replace http:// in anchor portion of links using Jquery使用 Jquery 替换链接的锚部分中的 http://
【发布时间】:2010-10-12 21:58:17
【问题描述】:

在一个页面上有几个链接:

<a class="linked" href="http://link1.com>http://link1.com</a>

<a class="linked" href="http://link2.com>http://link2.com</a>

如何删除每个链接中的第二个 http://,使其在屏幕上看不到。

我试过没有用:

$(document).ready(function() {

$('.linked').html().replace("http://","");

【问题讨论】:

  • 您是要从 href 还是从文本中删除它?
  • 试图从文本中删除它,谢谢。

标签: jquery class replace hyperlink anchor


【解决方案1】:

如果您在谈论锚标记中的可见文本

$.each($('.linked'), function()
{
  var anchor = $(this);
  anchor.text( anchor.text().replace("http:\/\/",'') )
});

缺少');'最后...

【讨论】:

  • 为什么是$.each($('.linked'), ... 而不是$('.linked').each(...
  • 它们是等价的——个人喜好。
  • 我编写它的方式适用于其他类型的集合,而不仅仅是 jquery 集合。所以我倾向于这样写。
  • 这些都没有达到预期的效果,什么也没做: $('.linked').each(function() { var anchor = $(this); anchor.text( anchor.text() .replace("http:\/\/",'') ); }); $.each($('.linked'), function() { var anchor = $(this); anchor.text( anchor.text().replace("http:\/\/",'') ) } );
【解决方案2】:

仅作记录,无 jQuery 版本:

var links = document.links;
for(var i = links.length; i--; ) {
    with(links[i]) {
        if(/(^|\s)linked(\s|$)/.test(className)) {
            firstChild.nodeValue =
                firstChild.nodeValue.replace(/^http:\/\//, '');
        }
    }
}

【讨论】:

  • 好的,放在头部或身体上都不起作用。
  • @adrian33:链接必须存在才可以修改,即必须将脚本元素作为正文的最后一个元素,使用jQuery的ready()函数,window.onloadDOMContentLoaded
猜你喜欢
  • 1970-01-01
  • 2012-05-07
  • 1970-01-01
  • 2010-10-25
  • 2019-04-12
  • 2018-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多