jQuery removing hash value from URL

fragment-identifier, javascript, jquery

Solution

original

It depends on what the hash value does. If it just moves the document down to `#a1`, you just need to set `scrollTop` to 0 after document has been loaded probably.

edit

looking on other stackoverflow questions,

parent.location.hash = ''

should do it, but maybe reloads the page (you have to test it)

Other than that, I advice you to handle it during/before your AJAX calls - i.e.

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

edit 2 with code based on posted code

Or, if you just need to call AJAX with `url` without hash, you can delete it in string, that calls the jQuery, no?

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

we basically get a's `href` before first `#`

Problem

I have a hard coded URL like so: ``` https://bupacouk.bwa.local.internal.bupa.co.uk/cash-plan-quote/quoteAction.do?getBenefitLevelDetails=getBenefitLevelDetails&productPolicyId=7841#a1 ``` When Javascript is enabled i don't want the hash value on the end so how do i remove it? When Javascript is disabled it needs to be present. Thanks. EDIT Here is the AJAX jQuery that i am using. So i am pasisng the hard coded URL to the same page on the server and retrieving a table from it: ``` // 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>')); }); } }); ```

Original source