53 votes

Jquery : Trouver du texte et le remplacer

<div id="id1">
 <p>
   apple
 </p>
 <p>
   ball
 </p>
 <p>
   cat
 </p>
 <p>
   dogsss
 </p>
</div>

Comment puis-je changer dogsss a dollsss en utilisant jquery ?

0 votes

Non, Tkz pour tous, mais vous avez mal compris mon sens sss est un texte dont je ne saurais dire ce qu'il sera exactement Mais je veux changer dog a doll

0 votes

Similaire à C# remplacer string temp="tasting";temp=temp.Replace("tast","test"); quelque chose comme ça.

116voto

Doug Owings Points 4378

Vous pouvez utiliser .each() pour parcourir en boucle les <p> éléments, et .text() pour mettre à jour le texte.

Par exemple :

$('#id1 p').each(function() {
    // get element text
    var text = $(this).text();
    // modify text
    text = text.replace('dog', 'doll');
    // update element text
    $(this).text(text); 
});

Démonstration : https://jsfiddle.net/8gra4xjw/


[Mis à jour pour refléter les commentaires]

Note : Ce qui précède remplace le premièrement occurrence de "chien" uniquement. Pour remplacer tous occurrences, vous pourriez utiliser :

// modify text (replace all)
text = text.replace(/dog/g, 'doll');

Voir aussi : Comment remplacer toutes les occurrences d'une chaîne de caractères en JavaScript ?


Si le nouveau texte doit contenir des entités HTML comme &nbsp; vous pourriez utiliser :

// update element text (html)
$(this).html(text);

Voir aussi : Quelle est la différence entre jQuery : text() et html() ?

5 votes

Remplace uniquement la première occurrence dans chaque p pas tous !

1 votes

Si vous devez insérer des entités html comme &nbsp; vous devez utiliser .html() plutôt que .text()

33voto

Joseph Marikle Points 25280
$("#id1 p:contains('dog')").html("doll");

ça va le faire.

http://jsfiddle.net/pgDFQ/

3 votes

Et si p contient le chien aboie ?

0 votes

@Vikrant Vous avez tout à fait raison. La solution que j'avais fournie est incomplète et elle a été écrite à un stade précoce de ma carrière de développeur. J'ai envisagé de la supprimer par le passé, mais je l'ai conservée pour le fait qu'elle inclut le sélecteur de restriction. contains() et a une réputation suffisante pour attirer l'attention sur elle. J'aime la réponse acceptée. Je l'ai mise en avant, mais la seule raison pour laquelle cette réponse n'est pas supprimée est que je pense qu'elle apporte toujours une valeur ajoutée à cette question. Je suis cependant tout à fait disposé à recevoir d'autres avis sur la question de savoir si elle doit être supprimée ou non.

0 votes

@JosephMarikle vous pourriez modifier la réponse et y ajouter plus de valeur pour couvrir d'autres cas. :)

12voto

Chamika Sandamal Points 12383

Essayez ceci,

$('#id1').html($('#id1').html().replace('dogsss','dollsss'));

échantillon de travail

0 votes

@JohnHartsock : voir l'exemple de travail. il est en train de se mettre à jour. j'espère que vous avez manqué la partie html :)

0 votes

Échoue complètement lorsque plusieurs li sont présents avec du texte chiensss

9voto

sandeep kumar Points 620

Avertissement string.replace('string', 'new string') pas remplacé tous les caractères. Vous devez utiliser regax replace.

Pour exp : J'ai une piqûre ancienne chaîne1, ancienne chaîne2, ancienne chaîne3 et veulent remplacer vieux à nouveau

Puis j'ai utilisé.

    var test = 'old string1, old string2, old string3';

   //***** Wrong method **********
    test = test.replace('old', 'new'); // This  will replaced only first match not all
    Result: new string1, old string2, old string3

  //***** Right method **********
    test = test.replace(/([old])+/g, 'new'); // This  will replaced all match 
    Result: new string1, new string2, new string3

0 votes

Le JavaScript pur est toujours mieux !

8voto

John Hartsock Points 36565
$('p:contains("dogsss")').text('dollsss');

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X