2011-03-27 1 views

Répondre

12

Vous pouvez utiliser la fonction .attr():

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

ou:

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

Ça a l'air bien. Je l'essaye. – Steffi

+0

Très bien. Merci beaucoup. – Steffi

+0

Cela ne prend pas en compte ce que l'URL existante est – JohnC

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

@Steffi L'index de l'élément à l'intérieur de l'objet jQuery - non pertinent dans ce cas. –

1

Si vous utilisez comme essayer à plusieurs reprises .attr():

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

Couple de commentaires: 1.peut fonctionner mais en réalité il remplace la valeur PAS d'ajout. Pour ajouter, obtenez d'abord la valeur $ ("# foo"). Attr ('href') et ajoutez tout ce dont vous avez besoin. 2. Dans l'exemple ci-dessus, vous n'avez pas besoin d'une fonction qui renvoie l'URL. myurl simple + '?' + myparams devrait le faire. C'est un cas de prendre une url et d'y adjoindre. Le définir à un href est juste un sous-produit. Consultez http://stackoverflow.com/questions/179713/how-to-change-the-href-for-a-hyperlink-using-jquery pour régler hrefs –

6

Vous besoin de vérifier s'il y a déjà une requête chaîne avant d'ajouter des éléments à l'URL en fonction des autres exemples que vous feriez quelque chose comme.

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

cela devrait être la réponse acceptée! –

Questions connexes