2015-03-10 8 views
1

Я искал об этом несколько дней, но все, что я нашел, это выделенный текст. Мне нужно «смело» все слова в contendEditable DIV, которые соответствуют «тесту».Массивная замена в contentEditable DIV

Я уже возился с получением внутреннего текста из DIV и менял эти слова тем же самым с жирным шрифтом, но курсор теряется, а когда инерция снова изменяется с помощью innerHTML, курсор идет в начале. Поэтому я начал искать эти изменения непосредственно на DIV, и единственное, что я нашел в execCommand, но, насколько я знаю, вы должны сначала выбрать текст и сделать изменение один за другим. Я хотел бы прочитать все DIV и внести изменения «на лету», это возможно? Есть ли способ объединить execCommand с регулярным выражением?

Пожалуйста, дайте мне немного света! :)

+0

Любая помощь по этому вопросу? Спасибо – Ruben

+0

Я не совсем понимаю, чего вы хотите достичь. Является ли [это] (http://jsbin.com/gajibuxoso/1) какой-либо помощи вам? –

ответ

0

Если вы хотите выделить жирным шрифтом слова в контентном div, то это эквивалентно размещению <strong> тегов вокруг указанных слов.

Итак, я полагаю, ваша проблема может быть решена с помощью первого определения RegExp, с флагом «г» для глобального

var boldText = "test" 
var testRegEx = new RegExp(boldText, "g") 

, а затем, где $ ДИВ является объект JQuery, представляющий коллекцию дивы (или тот), содержимое которого вы хотите изменить:

$div.html($div.html().replace(textRegEx,"<strong>" + boldText + "</strong>")) 
Смежные вопросы