2010-07-30 14 views
29

tengo este script sencillo:retirar el # de window.location.hash

$(document).ready(function(){ 

var $yoyo = window.location.hash; 

alert($yoyo); 

}); 

Pero necesito para deshacerse del símbolo # como voy a estar utilizando la variable de localizar div id de. Intenté usar .remove ('#') pero parece que no funciona.

¡Muchas gracias de antemano!

+0

http://stackoverflow.com/a/5298684/104380 – vsync

Respuesta

76
var $yoyo = window.location.hash.substring(1); 

Esto simplemente significa que estamos tomando una subcadena que consiste en el carácter 1 (0-indexado, tan segundo) en adelante. Vea los documentos substring.

+4

Esto funciona siempre y cuando la cadena en realidad comienza con "#", pero se podría argumentar que esto es más robusta y más fácil de leer: 'window.location.hash.replace (/^# /," ")'. –

+0

@ ChristianDavén 'window.location.hash' siempre tendrá un hash delante o estará vacío, y' '' .substring (1) === '' ', así que creo que la solución es bastante robusta. Sin embargo, creo que el tuyo es más legible. (También vea http://lea.verou.me/2011/05/get-your-hash-the-bulletproof-way/) –

16
var $yoyo = window.location.hash.replace("#", ""); 

.remove() es una función de manipulación del DOM de jQuery. .replace() es una función javascript nativa que reemplaza una cadena con otra cadena dentro de una cadena. De W3Schools:

<script type="text/javascript"> 

var str="Visit Microsoft!"; 
document.write(str.replace("Microsoft", "W3Schools")); 

</script> 
+1

+1 para explicar por qué .remove() no funciona. –

+0

Por supuesto, dado que se trata de Stack Overflow, se trata de una función de manipulación jQuery DOM. Pero de hecho podría ser cualquier cosa. -_- –

+0

@Will, la publicación fue etiquetada con jQuery. No podría ser simplemente cualquier cosa;) –

Cuestiones relacionadas