我正在寻找一种使用jQuery替换18个链接的方法。
我拥有的是:
<a class="PDF-link" href="http://domain/0101_xxx.pdf" target="_blank">folder 1</a>
<a class="PDF-link" href="http://domain/0102_xxx.pdf" target="_blank">folder 2</a>
<a class="PDF-link" href="http://domain/0201_xxx.pdf" target="_blank">folder 2</a>
<a class="PDF-link" href="http://domain/0202_xxx.pdf" target="_blank">folder 2</a>
14 more like this
我开始使用这个jQuery:
$(document).ready(function() {
var client = "<%=UserController.GetCurrentUserInfo().Username%>";
$('.PDF-link').prop('href', $('.PDF-link').prop('href').replace('xxx', client));
});
但是为每个链接生成相同的URL:
http://domain/0101_johndoe.pdf
http://domain/0101_johndoe.pdf
http://domain/0101_johndoe.pdf
http://domain/0101_johndoe.pdf
我希望它像这样:
http://domain/0101_johndoe.pdf
http://domain/0102_johndoe.pdf
http://domain/0201_johndoe.pdf
http://domain/0202_johndoe.pdf
有人能帮助我吗?
答案 0 :(得分:1)
您使用的逻辑不会起作用,因为每次您选择整个.PDF-link
元素组时。相反,您可以为prop
提供一个函数,该函数将针对找到的每个元素执行:
var client = "<%= UserController.GetCurrentUserInfo().Username %>";
$('.PDF-link').prop('href', function(i, val) {
return val.replace('xxx', client);
});
答案 1 :(得分:1)
我在这种情况下使用每个:
$(document).ready(function() {
var client = "<%=UserController.GetCurrentUserInfo().Username%>";
$('.PDF-link').each(function() {
$(this).attr('href', $(this).attr('href').replace('xxx', client));
});
});
答案 2 :(得分:0)
在每个this.href
中使用$('.PDF-link').prop('href')
代替{{1}}
Example JSFiddle
答案 3 :(得分:-1)
尝试下面的
$(document).ready(function() {
var client = "<%=UserController.GetCurrentUserInfo().Username%>";
$('a.PDF-link').prop('href', client);
});
(或使用attr)
$(document).ready(function() {
var client = "<%=UserController.GetCurrentUserInfo().Username%>";
$('a.PDF-link').attr('href', client);
});
(或使用javascript这应该有用)
$(document).ready(function() {
var client = "<%=UserController.GetCurrentUserInfo().Username%>";
$('a.PDF-link').each(function(){
$(this)[0].setAttribute('href', client);
});
});