私はこれまでにこのコードを持っていますが、機能していません:
$('.passName').click(function(){
var schoolName = "18734";
var link = $(this).attr('href');
var newLink = link + schoolName;
$(this).attr('href') = newLink;
});
私はこれまでにこのコードを持っていますが、機能していません:
$('.passName').click(function(){
var schoolName = "18734";
var link = $(this).attr('href');
var newLink = link + schoolName;
$(this).attr('href') = newLink;
});
以下をせよ:
$(this).attr('href', newLink);
アプローチに問題があります。ユーザーが別のタブをターゲットにしている場合でも、クリックするたびに、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"
});
Simpleでは、次のようにします。-
$('.passName').click(function() {
$(this).attr('href', this.href+'18734');
});
実際には、新しいjQueryオブジェクトを作成する必要はありません。次のようにするだけです。
$('.passName').click(function() {
var schoolName = "18734";
this.href += schoolName;
});
jQueryとしてのライブラリは便利ですが、プレーンなJavaScriptとDOMを忘れてはなりません。
さらに、JSでは、作成した関数呼び出しに実際に何かを「割り当てる」ことはできません。jQueryでは、属性の値を設定する方法は次のとおりです。$(this).attr('attr', newLink)