2011-02-09 14 views
25

Tengo un script de la siguiente manerair al enlace de clic de botón - jQuery

$('.button1').click(function() { 
    document.location.href=$(this).attr('id'); 
}); 

el botón 1 tiene las identificaciones únicas variables. al hacer clic, la página debe redirigirse a la url "www.example.com/index.php?id=buttonid", pero ahora la página está redireccionando solo a "button id".

Quiero agregar la cadena "www.example.com/index.php?id=" antes de la url actual. ¿Cómo puedo hacer esto posible?

Respuesta

55
$('.button1').click(function() { 
    window.location = "www.example.com/index.php?id=" + this.id; 
}); 

En primer lugar usar window.location es mejor ya que de acuerdo con la especificación document.location el valor era de solo lectura y podría causarle dolores de cabeza en navegadores antiguos/diferentes. Compruebe notas @MDC DOM document.location page

Además, por segundo - utilizando attr método jQuery para obtener id es una mala práctica - que debe utilizar directa de acceso DOM nativa this.id como el valor asignado a this elemento DOM es normal.

+0

Muchas gracias amigo ... :) –

+0

+1 por ser el primero en sugerir window.location y this.id, fui con mi respuesta rápidamente sin ellos;) – Sarfraz

+0

@Sarfraz cheers lad ! –

2

¿Por qué no cambiar la segunda línea de

document.location.href="www.example.com/index.php?id=" + $(this).attr('id'); 
+0

Gracias ... esto funciona .. :) –

+0

@blasteralfred comprobar mi respuesta para algunos más consejos y buenas prácticas –

4

Es necesario para especificar el dominio:

$('.button1').click(function() { 
    window.location = 'www.example.com/index.php?id=' + this.id; 
}); 
+0

Gracias ... esto funciona .. :) –

+0

@blasteralfred: Bienvenido :) – Sarfraz

+0

href es innecesario y se ven en mi respuesta para ver más información sobre cosas que podrían haberse hecho mejor –

5
$('.button1').click(function() { 
    document.location.href='/index.php?id=' + $(this).attr('id'); 
}); 
Cuestiones relacionadas