-1

我需要使用 jquery 在任何锚标记或任何表单操作 [即任何链接位于 DOM] 中的每个 url [如果还没有] 之前附加 www。那可能吗?

4

2 回答 2

1

这不适合http://(和其他变体),但你可以这样做......

$("a").each(function(){
   var href = $(this).attr("href");
   if(href.indexOf("www.") != 0){
      $(this).attr("href", "www." + href);
   }
});

form标签使用该属性action,所以如果你也想要,你将不得不做一些额外的代码。要么检查标签名称,要么为表单创建一个新循环。像这样的东西:

$("a, form").each(function () {
    var attr = $(this).prop("tagName") == "FORM" ? "action" : "href";
    var href = $(this).attr(attr);
    if (href.indexOf("www.") != 0) {
        $(this).attr(attr, "www." + href);
    }
});

这是一个工作示例

注意:这只是一个例子。有很多事情需要考虑。我已经提到了方案问题(http 等),那么您必须考虑相对路径(即“/folder/page.html”)。一切都变得有些混乱,您确定这实际上是您需要做的吗?

于 2013-05-17T13:42:22.123 回答
0
$('a').each(function(){
        if($(this).attr('href').indexOf('www')!=0){
            $(this).attr('href', 'www.'+$(this).attr('href'));
        }
   });

jsfiddle

于 2013-05-17T13:49:30.170 回答