用jQuery替换同一个类的链接

时间:2015-01-08 11:34:44

标签: javascript jquery

我正在寻找一种使用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

有人能帮助我吗?

4 个答案:

答案 0 :(得分:1)

您使用的逻辑不会起作用,因为每次您选择整个.PDF-link元素组时。相反,您可以为prop提供一个函数,该函数将针对找到的每个元素执行:

var client = "<%= UserController.GetCurrentUserInfo().Username %>";
$('.PDF-link').prop('href', function(i, val) {
    return val.replace('xxx', client);
});

Example fiddle

答案 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);
     });
});