2010-03-04 2 views
2

у меня есть следующий код:JQuery разделить только слова, которые не имеют определенного класса

<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> 

Я пытаюсь написать функцию, которая будет разделить только те слова, которые не имеют класс «хорошо». Я использую это:

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>"); 

... но это раскалывает все мои слова, и мне нужно «хороший» класс не быть расщепляется и не должны быть добавлены к тексту вар - присоединяйтесь.

Надеюсь, что я хорошо объяснил, что я хочу здесь сделать, я знаю, что это может быть неприятно.

Thanx За вашу помощь

+0

* расщепляется = 'раскол'. Как общий момент. –

+0

thanx для точки :) – Mircea

+0

Вы читаете 'text', а затем устанавливаете' html'. Если в этом тексте есть '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ',' Избегайте работы с строками HTML. Для каждого слова создайте новый 'span' и установите его« текст »в слово. – bobince

ответ

4

Обновление, основанное на комментариях. Поскольку you'r завернутые в пролете, селектор будет немного сумасшедший, сделать это вместо того, чтобы:

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

Я вижу, что ваш шварц такой же большой, как у меня ... – hunter

+0

@ Hunter - Hah, потрясающий фильм –

+0

Я пробовал это: var words = $ ("# selectable1 span.cica: not (.good)").().Трещина(" "); var text = words.join (""); $ ("# selectable1 span.cica"). Html ("" + text + ""); Но это не сработает. Я внес изменения в свой источник, добавляя строку, которая фактически выполняет переменные – Mircea

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

Это может работать ...

Смежные вопросы