链接检测并替换另一个,在js中

时间:2011-02-14 14:23:03

标签: javascript jquery

您好   我想知道如何在我的网站上自动链接 以:

开头

http://site.com/00000/

为:

http://site.com/11111/

检测>取代

5 个答案:

答案 0 :(得分:2)

CSS3 attribute "starts with" selectors可以帮助你(jQuery在它支持的所有浏览器上都支持它们 - 如果可能的话,使用原生功能,以提高速度)。然后只需使用each循环并更新原始href元素的a属性:

$("a[href^='http://site.com/00000/']").each(function() {
    this.href = "http://site.com/11111/" + this.href.substring(21);
});

答案 1 :(得分:1)

您可以使用jQuerys .attr()方法。您不需要显式调用.each(),如果您的选择器遇到多个节点,jQuery会照顾您。从版本1.4.1开始,.attr()与许多其他setter一样,将函数作为参数。此函数会传入索引并传入实际的。无论您从此回调中返回什么,都将成为新值。

$(document).ready(function () { 
    $('a').attr('href', function(_, href) {
         return href.replace('246619', '262257');
    });
});

演示http://www.jsfiddle.net/qR2NU/

参考.attr()

答案 2 :(得分:0)

<script type="text/javascript">
    $(document).ready(function () { 
        var urlContain = new RegExp('Detect Value Here');
        $('a').each(function () { 
            var href = this.getAttribute('href').replace(urlContain, 'Replacement here');
            $(this).attr('href', href);
        });
    });
</script>

答案 3 :(得分:0)

一旦DOM加载并执行所需的替换,此代码将遍历页面上具有href属性的每个链接:

$(function() {
  $('a').each(function() {
    var href = $(this).attr('href');
    if (href !== undefined) {
      href = href.replace(/246619/g, '262257');
    }
    $(this).attr('href', href);
  });
});

以上内容依赖于jQuery,但根据您用于问题的标记判断,您已经在使用它了。

答案 4 :(得分:0)

未测试:

$("a[href^=http://site.com/00000/]").each(function() {
  this.href = "http://site.com/11111/" + this.href.substr("http://site.com/00000/".length");
});