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($('
' + $benefitWrap + '
')); }); } });

原版的

这取决于哈希值的作用。 如果它只是将文档向下移动到#a1 ,您只需要在加载文档后将scrollTop设置为0。

编辑

查看其他stackoverflow问题,

 parent.location.hash = '' 

应该这样做,但可能会重新加载页面(你必须测试它)

除此之外,我建议你在AJAX调用期间/之前处理它 – 即

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

使用基于发布代码的代码编辑2

或者,如果你只需要使用没有哈希的url调用AJAX,你可以在字符串中删除它,调用jQuery,不是吗?

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

我们基本上先得到一个href #

一个简单的window.location.hash=""就可以了。

这对于提出相同问题的人,如何在href中的#之后提取数据可能会有所帮助。

 this.hash.slice(1); 

这将使#123为123。


编辑:我应该注意,如果你要从这些数据计算数字,最好使用parseInt(this.hash.slice(1)); 否则你会得到时髦的结果。