2010-01-31 12 views
4

Je voudrais ajouter "télécharger un PDF de" à n'importe quels liens hypertexte, liant aux fichiers PDF. Actuellement, je suis en mesure de préfixer ce texte exact, mais il ajoute au texte du lien hypertexte. Je voudrais à résider en dehors de l'élément de lien hypertexte, comme ceci: Télécharger un fichier PDF [lien avec le texte]jQuery préfixe à tous les éléments de lien hypertexte qui lient aux fichiers PDF

Ce code J'utilise maintenant:

jQuery('a[href$=.pdf]').prepend('Download a PDF of '); 

Répondre

4

Avez-vous essayé?

jQuery('a[href$=.pdf]').before('Download a PDF of '); 
+1

+1 bonne réponse. Cela fonctionne: http://jsbin.com/akiba3 J'avoue, j'ai pris @ SSCCE de BalusC et ai changé la ligne pour utiliser votre solution pour exécuter mon test. –

+0

Doux! Je <3 jQuery. Cela rend ma vie tellement plus facile. = D – AlteredConcept

+0

+1 en effet. Je n'ai pas réalisé de celui-ci. – BalusC

2

On peut l'envelopper dans un élément en ligne (par exemple <span>) et insert it before les éléments souhaités. Voici un SSCCE, juste copy'n'paste'n'run il:

<!doctype html> 
<html lang="en"> 
    <head> 
     <title>SO question 2172666</title> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
     <script> 
      $(document).ready(function() { 
       $('<span>Download a PDF of </span>').insertBefore('a[href$=.pdf]'); 
      }); 
     </script> 
    </head> 
    <body> 
     <p><a href="foo.pdf">foo.pdf</a></p> 
     <p><a href="foo.exe">foo.exe</a></p> 
     <p><a href="bar.pdf">bar.pdf</a></p> 
    </body> 
</html> 

Modifier: ah, comme une réponse avant, le jQuery.before() fonctionne exactement comme vous le voulez, je pencherais pour ce lieu.

+0

Le 'span' n'est pas nécessaire, mais il est nécessaire de l'utiliser comme vous le montrez ici (avec' $() 'et' insertBefore') mais +1 pour mettre à jour votre réponse et fournir un exemple pratique. –

+0

Oui exactement. Je n'étais tout simplement pas pleinement conscient de l'existence et du bénéfice de 'before()'. Maintenant oui :) – BalusC

0

Voici un exemple qui fera ce que vous cherchez:

<a href="foo.pdf">Foo</a> 
<a href="bar.pdf">Bar</a> 
<span id='foo'>Download a pdf of </span> 
<script type='text/javascript'> 
$('#foo').insertBefore('a[href$=.pdf]'); 
</script> 
4

Les autres sélectionneurs qui ont été fournis dans les réponses sont fausses, à partir d'aujourd'hui de toute façon. jQuery se plaindra:

Uncaught Erreur: Erreur de syntaxe, expression non reconnue: un [. href $ = pdf]

La bonne façon de choisir l'ancre est:

jQuery('a[href$=".pdf"]'); 

Notez les guillemets autour. pdf