2010-11-02 6 views
1

J'essaie de parcourir et de trouver des liens avec une extension spécifique (* .ashx) pour pouvoir ouvrir le lien dans un nouvel onglet. (Sitefinity n'autorise pas target = "_ blank").Comment trouver des liens avec une extension spécifique en utilisant jQuery

Je peux trouver les tags en utilisant jQuery, mais je dois ensuite filtrer plus de sorte que lorsque je clique sur un tag avec une extension de .ashx, je peux l'ouvrir dans une nouvelle fenêtre.

Quelque chose comme ce

<a href="anniversary.sflb.ashx"> Anniversary </a> 

Un grand merci, James

Répondre

0

Vous pouvez utiliser le attribute ends with selector:

$("a[href$='.ashx']") 

Note: cela ne fonctionnerait pas si vos liens ont une chaîne de requête ou un autre suffixe dans l'attribut href

+0

Merci Steve ... a bien fonctionné! –

2

Les deux réponses fournies à ce jour (de son et Steve graham) sont tous deux potentiellement inexactes: la volonté de graham correspondent parfois des liens qui ont quelque part ashx dans la chaîne, mais pas nécessairement à la fin de la chaîne - bashxml.php correspond, par exemple. Steve, quant à lui, ne correspondra pas s'il y a une chaîne de requête, comme il le note.

Vous pouvez contourner cela en faisant vous-même le filtrage:

$('a').each(function() { 
    if (this.pathname.substr(-5) === '.ashx') { // if the last 5 characters of the pathname are .ashx 
     // do your processing here 
    } 
}); 

Voir documentation on the Location object.

+0

bon point, mais cela fonctionnerait avec un point inclus - $ ("a [href * = '. Ashx']") – graham

+0

@graham Oui, cela aiderait. Le mien est encore * plus * fiable, cependant! :-) – lonesomeday

+1

vrai, ne peut pas discuter avec ça! – graham