web-dev-qa-db-ja.com

jQueryがURLからハッシュ値を削除する

私は次のようなハードコードされたURLを持っています:

https://bupacouk.bwa.local.internal.bupa.co.uk/cash-plan-quote/quoteAction.do?getBenefitLevelDetails=getBenefitLevelDetails&productPolicyId=7841#a1

Javascriptが有効になっている場合、最後にハッシュ値が必要ないので、どのように削除しますか?

Javascriptが無効になっている場合は、存在する必要があります。

ありがとう。

編集する

ここにAJAX使用しているjQueryがあります。そのため、サーバー上の同じページへのハードコードされたURLをパスし、そこからテーブルを取得しています。

        // Find href of current tab
    var $tabValue = $(this).attr('href');

    // AJAX new table in
    $.ajax({
        type: "GET",
        cache: false,
        url: $(this).attr('href'),
        success: function(data){

        // Find benefit wrap
        $(data).find('.benefitWrap').each(function(){
            // get the contents
            var $benefitWrap = $(this).html();
            // replace contents on page
            $('.benefitWrap').replaceWith($('<div class="benefitWrap">' + $benefitWrap + '</div>'));

        });

       }

    });
17
RyanP13

元の

ハッシュ値が何をするかによります。ドキュメントを#a1に移動するだけの場合は、おそらくドキュメントがロードされた後でscrollTopを0に設定する必要があります。

編集する

他のスタックオーバーフローの質問を見て、

parent.location.hash = ''

それを行うべきですが、たぶんはページをリロードします(テストする必要があります)

それ以外は、AJAXの呼び出し中/前に処理することをお勧めします。

if (hash != 'a1'){ doAjax(); } //pseudocode obviously.

投稿されたコードに基づくコードで編集2

または、単にAJAX with urlwithout hash)を呼び出す必要がある場合は、jQueryを呼び出す文字列から削除できますか?

var $tabValue = $(this).attr('href');
var $withoutHash = $tabValue.substr(0,$tabValue.indexOf('#'));

基本的に、最初の#の前にaのhrefを取得します

28
Adam Kiss

シンプルな window.location.hash=""はそれを行います。

14
Steve Chab

これは、同じ質問をする人、hrefの#に続くデータをプルする方法に役立つ場合があります。

_this.hash.slice(1);
_

これは、123を123として与えます。


編集:このデータから数値を計算する場合は、parseInt(this.hash.slice(1));を使用するのが最善です。そうしないと、ファンキーな結果が得られます。

8
Spiderkeg

これでうまくいきます。ページが上にスクロールしないように!を追加しました。

window.location.hash="!";
1
Alvin Konda