2010-03-04 5 views
2

j'ai le balisage suivant:jQuery divisé uniquement des mots qui n'ont pas classe spécifique

<div id ="selectable1"> 
<span id="layer6"> 
here are some words that needs to be splited 
<span class="good">this should not be splitted<span> 
this should be splitted 
<span class="good">and this should not be spited<span> 
</span> 
</div> 

Je suis en train d'écrire une fonction qui va diviser seulement les mots qui n'ont pas classe « bon ». J'utilise ceci:

var words = $("#selectable1 span.cica").text().split(" "); 
var text = words.join("</span><span class='drag col'> "); 
$("#selectable1 span.cica").html("<span class='drag col'>" + text + "</span>"); 

... mais cela est partagerai mes mots et je besoin de la « bonne » classe ne soit divisé et non à ajouter au texte var - rejoindre.

J'espère avoir bien expliqué ce que je veux faire ici, je sais que cela peut être confus. Merci pour votre aide

+0

* 'scission fente' =. Juste comme un point général. –

+0

merci pour le point :) – Mircea

+0

Vous lisez 'texte', puis définissez' html'. S'il y a un '<' ou '&' dans ce texte, vous avez une erreur et probablement des problèmes de sécurité XSS. Évitez de travailler sur des chaînes HTML. Pour chaque mot, créez un nouveau span et définissez son texte sur le mot. – bobince

Répondre

4

Mise à jour basée sur les commentaires. Depuis you'r Enveloppé dans une durée, le sélecteur va un peu fou, faire à la place:

var span = $("#selectable1>span.cica").clone(); 
span.find(".good").remove(); 
var words = span.text().split(" "); 
var text = words.join("</span><span class='drag col'> "); 
+0

Je vois votre shwartz est aussi grand que le mien ... – hunter

+0

@Hunter - Hah, film génial –

+0

J'ai essayé ceci: var mots = $ ("# selectable1 span.cica: not (.good)"). Texte().Divisé(" "); var text = words.join (""); $ ("# selectable1 span.cica"). Html ("" + texte + ""); Mais cela ne fonctionne pas. J'ai modifié ma source en ajoutant la ligne qui exécute réellement les variabilités – Mircea

2
var words = $("#selectable1 span:not(.good)").text().split(" "); 
var text = words.join("</span><span class='drag col'> "); 

qui pourrait fonctionner ...

Questions connexes