2

何らかの理由で、このコード行は未定義を返しています$(this).attr("href")

$("a").attr("href", "javascript:page('" + $(this).attr("href") + "')");

どうすればその値を取得できますか?

4

5 に答える 5

9
$("a").click(function(e){
    e.preventDefault();
    page(this.href);
});
于 2012-07-02T14:43:02.923 に答える
5

試す:

$("a").attr("href", function (index, oldHref) {
    return "javascript:page('" + oldHref + "')");
});

attr関数参照を受け取るオーバーロードについては、ドキュメントを参照してください。

@Pointy が指摘しているようにjavascript:、マークアップ内で使用するのではなく、イベント ハンドラーを作成することを検討する必要があります。

于 2012-07-02T14:40:19.130 に答える
2

これは、href属性にJavascriptを必要としない代替アプローチです。

$('a').click( function(e) {
    e.preventDefault();
    page(this.href);
} )
于 2012-07-02T14:42:52.310 に答える
2

インラインJavaScriptは必要ありません。以下のようにしてみませんか?

$("a").click(function(){
    page(this.href);
    return false;
});
于 2012-07-02T14:43:40.640 に答える
1

それをしたい場合(ページ上のリンクのすべての href 属性を更新する)、あなたはすることができます

$("a").each(function() {
   $(this).attr("href", "javascript:page('" + $(this).attr("href") + "')");
});
于 2012-07-02T14:40:41.190 に答える