2011-02-08 7 views
0

J'ai un cours pour DIV appelé .post et je voudrais trouver des mots à l'intérieur de cet élément et les remplacer par autre chose. Ces mots ne doivent pas non plus être à l'intérieur d'éléments avec d'autres classes (.tiptrig et .postheader).Comment trouver des mots spécifiques dans des éléments avec des classes spécifiques avec Javascript/jQuery?

Je voudrais vraiment y parvenir mais je ne sais pas comment ... Je suis nouveau sur Javascript et surtout sur jQuery.

Répondre

4

Cela semble être une tâche facile.

$('.post').each(function() { 
    $(this).html(function(index, html) { 
     return html.replace(/THEWORD/g, 'something else'); 
    }); 
}); 

Cela itérer sur tous les nœuds qui possèdent la classe .post et remplacer le mot theWord avec quelque chose d'autre. Sachez que c'est aussi dangereux parce que vous pouvez également modifier les noms de balises HTML par exemple. Cela n'a de sens que si vous voulez ajouter/modifier du code HTML.

demo: http://www.jsfiddle.net/XGuGy/

probablement une meilleure idée d'accéder au text():

$('.post').each(function() { 
    var $this = $(this); 

    if(!$this.closest('.postheader').length && !$this.closest('.tiptrig ').length) { 
     $this.text(function(index, text) { 
      return text.replace(/you/g, 'you fool'); 
     }); 
    } 
}); 

demo: http://www.jsfiddle.net/XGuGy/1/

+0

Cool, mais comment puis-je vérifier si, par exemple, la mot est dans une balise avec la classe .postheader? – Vercas

+0

@Vercas: J'ai mis à jour le deuxième exemple pour éviter cela. – jAndy

+0

Merci! Je vais tester ça plus tard! – Vercas

Questions connexes