拆分并替换href

时间:2013-01-22 09:48:11

标签: jquery function replace split attr

我试图使用函数拆分和替换href。代码简单明了:

HTML

<a href="http://nu.nl">nu.nl</a>

Jquery的

 $(document).ready(function () {   

     function rep() {
         href = $('a').attr('href');
         url = href.split('/');         
         href.replace(url[2], 'cnn.com');
     }

     rep()
 });

正如您所见,我正在准备文档中的函数。我试过'prop'而不是attr而没有运气。我究竟做错了什么? 示例:JsFiddle

2 个答案:

答案 0 :(得分:5)

您不使用replace返回的内容。如果要更改a元素中的href,可以更改

href.replace(url[2], 'cnn.com');

$('a').attr('href', href.replace(url[2], 'cnn.com'));

现在,假设您可能有多个a元素,我建议您用

替换整个代码
$('a').attr('href', function(_, href){
    url = href.split('/');          
    return href.replace(url[2], 'cnn.com');
});

Demonstration

如果您愿意,也可以使用正则表达式来避免分裂:

$('a').attr('href', function(_, href){
     return href.replace(/\/\/[^\/]+/, '//cnn.com')
});

答案 1 :(得分:1)

您无需在document.ready语句

中定义您的函数
function rep(myURL, replaceWith) {
  var arr = myURL.split('/');          
  myURL = myURL.replace(arr[2], replaceWith);
  return myURL;
}

$(document).ready(function () {   
    $('a').attr('href', rep(
                            $('a').attr('href'), 
                            'cnn.com'
                           )
               );
});