私は次のようなスクリプトを持っています
$('.button1').click(function() {
document.location.href=$(this).attr('id');
});
button1には可変の一意のIDがあります。クリックすると、ページはURL「www.example.com/index.php?id=buttonid
」にリダイレクトする必要がありますが、ページは「button id
」にのみリダイレクトされます。
現在のURLの前に文字列「www.example.com/index.php?id=
」を追加します。どうすればこれを可能にできますか?
$('.button1').click(function() {
window.location = "www.example.com/index.php?id=" + this.id;
});
まず第一にwindow.location
を使用するほうが仕様に従ってdocument.location
値が読み取り専用であり、古い/異なるブラウザで頭痛の種になる可能性があるためです。メモを確認@ MDC DOM document.location page
2つ目-attr
jQueryメソッドを使用してidを取得するのは悪い習慣です-this
に割り当てられた値は通常のDOM要素であるため、直接ネイティブDOMアクセサーthis.id
を使用する必要があります。
$('.button1').click(function() {
document.location.href='/index.php?id=' + $(this).attr('id');
});
ドメインを指定する必要があります。
$('.button1').click(function() {
window.location = 'www.example.com/index.php?id=' + this.id;
});
2行目を単に変更しないのはなぜですか
document.location.href="www.example.com/index.php?id=" + $(this).attr('id');
window.location.href
で現在のURLを取得できますが、クエリ文字列を操作するにはjQueryクエリプラグインが必要になると思います。 http://plugins.jquery.com/project/query-object