3

到目前为止,我已经得到了这段代码,但它不起作用:

$('.passName').click(function(){
    var schoolName = "18734";
    var link = $(this).attr('href');
    var newLink = link + schoolName;
    $(this).attr('href') = newLink;
});
4

4 回答 4

11

请执行下列操作:

$(this).attr('href', newLink);
于 2013-02-05T16:09:48.757 回答
8

您的方法存在问题:每次单击时都会将 schoolName 附加到 URL,即使用户定位到另一个选项卡也是如此。

所以我建议不要弄乱href属性,而是在 click 上执行操作:

   $('.passName').click(function(){
            location.href = this.href + "18734";
   });

或者至少检查你之前没有添加它:

   $('.passName').click(function(){
       var schoolName = "18734";
       var link = this.href;
       if (link.indexOf(schoolName, link.length - schoolName.length)!==-1) {
           this.href = link+schoolName
       }
   });

或者,正如 Felix Kling 所建议的那样,只需确保该函数只被调用一次:

   $('.passName').one('click', function(){
       this.href += "18734"
   });
于 2013-02-05T16:13:38.533 回答
1

在简单中,这样做: -

$('.passName').click(function() {
    $(this).attr('href', this.href+'18734');
});
于 2013-02-05T16:18:46.833 回答
0

你实际上不需要创建一个新的 jQuery 对象,你可以简单地拥有:

$('.passName').click(function() {
   var schoolName = "18734";
   this.href += schoolName;
});

库和 jQuery 一样有用,但我们不应该忘记纯 JavaScript 和 DOM。

另外,在 JS 中,你不能真正“分配”一些东西给你所做的函数调用;在 jQuery 中设置属性值的方法是$(this).attr('attr', newLink)

于 2013-02-05T16:14:08.030 回答