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したがって、属性をいじらないで、クリック時にアクションを実行することをお勧めします。

   $('.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が提案しているように、関数が1回だけ呼び出されるようにするだけです。

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

Simpleでは、次のようにします。-

$('.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 に答える