我试图使用函数拆分和替换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
答案 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');
});
如果您愿意,也可以使用正则表达式来避免分裂:
$('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'
)
);
});