2011-03-27 17 views

Respuesta

12

usted podría utilizar la función .attr():

var foo = 'foo=bar'; 
$('a#foo').attr('href', function(index, attr) { 
    return attr + '?' + foo; 
}); 

o:

$('a#foo').attr('href', function() { 
    return this.href + '?' + foo; 
}); 
+0

Se ve bien. Lo intento. – Steffi

+0

Muy bien. Muchas gracias. – Steffi

+0

Esto no tiene en cuenta cuál es la url existente – JohnC

2
$('a').attr('href', function(i, v) { 
    return v + 'text...'; 
}); 
+0

@Steffi El índice del elemento dentro del objeto jQuery - irrelevante en este caso. –

1

Si lo usa intentar repetidamente .attr() como:

HTML: <a id='foo' href='#'>I am your father,.. nooooo</a> 

var myparams = 'myvar=myvalue'; 
var myurl = 'TypeThe_NetscapeURL'; 
$('a#foo').attr('href', function() { 
    return myurl + '?' + myparams; 
}); 
+0

Par de comentarios: 1. eso funcionaría pero en realidad está anulando el valor que NO se agrega. Para agregar, obtenga el valor primero $ ("# foo"). Attr ('href') y luego agregue lo que necesite. 2. en el ejemplo anterior, no necesita una función que devuelva url. myurl simple + '?' + misparams deberían hacerlo. Este es un caso de tomar una url y anexarla. Establecerlo en un href es solo un subproducto. Consulte http://stackoverflow.com/questions/179713/how-to-change-the-href-for-a-hyperlink-using-jquery para establecer hrefs –

6

Usted necesito verificar si ya hay una consulta cadena antes de agregar elementos a la url en base a los otros ejemplos que haría algo así como.

var foo = 'foo=bar'; 
$('a').attr('href', function(index, attr) { 
    return attr + (attr.indexOf('?') >=0 ? '&' : '?') + foo; 
}); 
+1

¡esta debería ser la respuesta aceptada! –

Cuestiones relacionadas