2010-10-15 7 views
0

J'ai une balise d'ancrage avec une URL spécifique à laquelle je souhaite ajouter une classe. Je le fais actuellement comme suit:Manipulation de chaînes dans jQuery

$('a[href=http://this.ismyurl.com/folder/file.html]').addClass('red'); 

Le problème que j'ai est que cette URL n'est pas cohérente. Le nom de fichier, file.html est toujours le même, donc si je pouvais manipuler cette chaîne et me concentrer sur les 9 derniers caractères (par exemple) alors je pourrais ajouter une classe de la même manière. Le problème est, je ne suis pas sûr comment faire ceci.

Quelqu'un peut-il aider?

Merci
Ronnie

+0

Vous pourriez vouloir le limiter aux 10 derniers ("/file.html"); "fichier.html" est "risqué" car il correspondra également à "afile.html", "bfile.html", etc. De toute évidence, le niveau de danger se rapporte au nom réel du fichier :) Vous pourriez même vouloir restreindre ceci à "/ dossier /" aussi. –

Répondre

4

Vous êtes à la recherche de l'attribut fin avec le sélecteur $=

$('a[href$="file.html"]').addClass('red'); 
+0

Parfait, merci Yi Jiang! – rnnbrwn

0
var url = "http://someurl.com" 
$('a[href='+url+']').addClass('red'); 
+0

Merci pour ce Mike, mais je ne suis pas sûr que cela fonctionnerait dans mon cas. J'ai besoin qu'il soit basé sur le fichier HTML, car il y a d'autres liens qui auraient la même URL de base, à laquelle je ne veux pas ajouter de classe. – rnnbrwn

2

Vous pouvez utiliser un caractère générique dans votre sélecteur jQuery. Je crois que cela va fonctionner:

$('a[href$=/file.html]').addClass('red'); 

qui ajoutera la classe « rouge » à tous les liens avec une fin href « /file.html ».