0

Web サイトのすべてのリンクにパラメーターを追加したいとします。たとえば、 ?var=123 とします。

これらのコードを使用しようとしましたが、何も起こりませんでした:

var has_querystring = /\?/; 

$("a[href]").each(function(el) {
    if ( el.href && has_querystring.test(el.href) ) {
        el.href += "&var=123";
    } else {
        el.href += "?var=123";
    }
});

$('a[href]').attr('href', function(i, hrf) { return hrf + '?var=123';});

$('a[href]').click(function(e) {
    e.preventDefault();
    window.location = this.href + '?var=123';
});`

私は何を間違っていますか?ありがとうございました。

4

1 に答える 1

1

これらのいずれも機能しない場合は、DOM の構築が完了する前に jQuery コードが実行され、要素が選択されていないように思えます。その解決策は、DOM 対応のイベント ハンドラーを使用することです。

$(document).ready(function() {
    // your code here
});

を使用する最初のスニペットの場合.each()、関数に渡される最初の引数は要素自体ではなく、要素のインデックスであるため、実際には次のようにすることに注意してください。

$('a[href]').each(function(index, el) {
    ...
});
于 2013-03-31T23:41:59.257 に答える