2010-07-23 1 views
4

Je commence juste à apprendre à propos de jQuery et je me familiarise avec la façon dont jQuery me permet d'utiliser des sélecteurs pour rechercher des ID et classes particuliers. Mais est-il également possible d'identifier des chaînes de texte ancien dans un paragraphe?Puis-je utiliser jQuery pour localiser une chaîne de texte dans le code HTML?

Par exemple, disons que je voulais trouver « l'essence » dans ces balises de paragraphe et de le convertir en un lien:

<p>His veins burned gasoline. 
    It kept his motor running but it never kept him clean.</p> 

Répondre

4

Vous ne vraiment utiliser jQuery pour faire le remplacer. Au lieu de cela, utilisez simplement la méthode .replace() de javascript.

(j'ai donné au paragraphe une carte d'identité pour indiquer le paragraphe correct.)

Essayez-:http://jsfiddle.net/yRCjN/1/

HTML

<p id='myparagraph'>His veins burned gasoline. 
    It kept his motor running but it never kept him clean.</p> 

javascript/jQuery

 // Cache the selected element so it only runs once. 
var $paragraph = $('#myparagraph'); 

    // Get the text and update it with the <a> tag 
var newcontent = $paragraph.text().replace(/(gasoline)/,'<a href="/some/link/path">$1</a>'); 

    // Set the new content 
$paragraph.html(newcontent); 
  • Vous obtenez le contenu du paragraphe à l'aide .text() de jQuery
  • Faites un .replace() sur le contenu du texte en remplaçant « essence » avec le même texte enveloppé dans un élément <a>
  • Utilisez la méthode de .html() jQuery pour mettre à jour le paragraphe avec le nouveau contenu.

  • http://api.jquery.com/text/

  • http://api.jquery.com/html/

Park Avenue mène à ...

+0

Merci beaucoup! Cela devrait me donner assez de travail. Et merci aussi de m'avoir fait confiance à JSfiddle. –

1
var text = jQuery("#someId").text(); 
text = textreplace(/(gasoline)/, "<a href='http://some.url.here'>$1</a>"); 
jQuery("#someId").html(text); 
+0

Pas besoin pour le "p" dans le sélecteur; 'jQuery ('# someId')' – Matt

+0

@Matt. Vrai. Modification –

1
$('p').text().replace('gasoline', '<a href="#">gasoline</a>'); 
Questions connexes