2009-12-21 6 views
0

Je veux changer le param de lien dynamiquement.Modifier les liens hypertexte dynamiquement en utilisant jquery

Par exemple.

  1. Link1
  2. Lien2
  3. Link3

par défaut leur URL est? Item = texte-à-dire pour link1 (href = "item = link1") etc .. mais quand je cliquez sur link1 l'url de lien2 et link3 devrait être lien2 (? item = lien2 & item = link1) link3 (? item = link3 & item = link1)

une idée de comment y parvenir?

Merci,

+0

Voir http://stackoverflow.com/questions/179713/how-to-change-the-href-for-a-hyperlink-using-jquery –

+1

yah J'ai vu cet article mais mon problème est différent. – TSSS22

Répondre

2

En supposant que tous les liens ont une classe de superspeciallink, cela devrait fonctionner:

$('a.superspeciallink').bind('click', function(){ 
    var querystring = this.search; // The search property of links gives you the querystring section of their href 
    var originalhref = this.href; 

    $('a.superspeciallink').each(function(){ 
     if(this.href != originalhref) { 
      this.href = this.href + '&' + querystring.slice(1); 
     } 
    }); 

    return false; 
}); 

Cela signifierait que ces liens ne sont jamais suivies si - je suppose une autre JavaScript serait en train de lire ces valeurs de chaîne de requête par la suite .

+0

cela semble être une bonne approche, j'ai besoin de vérifier cela, mais dans mon cas, tous les liens sont de même classe. Et en fait c'est la méthode pour filtrer les choses .Yah vous êtes rite son ajout de chaîne de requête juste sur un autre mais c'est l'ajout de filtres ..... – TSSS22

+0

Ah, d'accord. Je l'ai modifié pour travailler avec des liens qui sont tous de la même classe. Il ne vérifie pas actuellement si la chaîne de requête a déjà été ajoutée, donc vous pourriez vous retrouver avec: item = link1 & item = link3 & item = link3 & item = link3 & item = link3 & item = link3. –

0

Invoke jQuery quelque chose comme ce qui suit:

$("my#links").attr("href", "new/href/value"); 

Vous devez écrire une fonction pour calculer la nouvelle valeur de href pour chaque lien, bien sûr.

+0

mais il est dynamique pour, par exemple, si je clique sur link3 alors ça devrait être pareil que si je clique d'abord sur link3 puis que link1 aurait une URL (? item = link1 & item = link3). Et si je clique sur link2 après l'url serait (link1:? Item = link1 & item = link2 & item = link3) – TSSS22

+0

Si cela est destiné à fonctionner comment vous décrivez, alors aucun de ces liens ne fera jamais autre chose que d'ajouter leurs chaînes de requête à chaque autre. Aucun d'entre eux ne sera effectivement suivi. Devraient-ils seulement faire la manipulation de chaîne de requête sur le premier coup, ou quelque chose? –

Questions connexes