Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Замена строки в конкретном <div></div>


Автор: disketa 12.5.2010, 11:35
Подскажите пожалуйста как можно с помощью Java Script произвести замену слова в тексте находящемся в конкретном <div>

К примеру имеется на странице следующий код:

<div id=12345>
Тут всякий текст написан, с различными словами
</div>

Нужно заменить через Java Script, слово "различными" на "верными"

Как это сделать?

Автор: GoldFinch 12.5.2010, 11:37
брать innerHTML, заменять регуляркой, устанавливать innerHTML

Автор: disketa 12.5.2010, 12:49
Я к сожалению новичок в JavaScript, что такое innerHTML и как его использовать?
Подскажите пожалуйста подробнее

Автор: GoldFinch 12.5.2010, 13:03
disketa, 
innerHTML - это свойство каждого элемента DOM, позволяет получать и устанавливать html код внутри элемента

возьмите любой учебник по JavaScript прочитайте раздел про DOM, потом про регулярные выражения

можете почитать вот это
http://www.w3schools.com/jsref/default.asp

Автор: disketa 12.5.2010, 13:16
Пробую делать так:

Код

<div id="txt1">
Проверка работы для замены ключевого слова!
</div>

<script language="JavaScript">
var reg=/ключевого слова/g/i
var fDiv = document.getElementById('txt1');
var s=fDiv.replace(reg, "новое слово");
fdiv.innerHTML = s; 
</script>



Не работает, в чём может быть дело?

Автор: GoldFinch 12.5.2010, 13:37
Код

var fDiv = document.getElementById('txt1');
fDiv.innerHTML = fDiv.innerHTML.replace(/ключевого слова/gi, "новое слово");

не забывайте соблюдать одинаковое написание имен: 
fDiv ... fdiv.innerHTML = ...

Автор: disketa 12.5.2010, 13:40
Спасибо  smile  всё заработало!

Добавлено через 14 минут и 17 секунд
Ах да, забыл спросить как использовать переменную для создания шаблона замена строки, тоесть как грамотно сделать следующие:

Код

<script language="JavaScript">
var fDiv = document.getElementById('txt1');
var s = 'ключевого слова';
fDiv.innerHTML = fDiv.innerHTML.replace(/s/gi, "<b>" + s + "</b>");
</script>


Чтобы всё заработало в этом примере!

Автор: disketa 12.5.2010, 15:29
Делаю так:

Код

<div id="txt1">
Проверка работы для замены ключевого слова!
</div>

<script language="JavaScript">
var fDiv = document.getElementById('txt1');
var s = /ключевого слова/gi
fDiv.innerHTML = fDiv.innerHTML.replace(s, "<b>" + s + "</b>");
</script>


В результате выполнения скрипта текст меняется на:

Проверка работы для замены /ключевого слова/gi!

Как убрать / и /gi 
Подскажите пожалуйста !?

Автор: нуп 12.5.2010, 15:42
Код

<script language="JavaScript">
var fDiv = document.getElementById('txt1');
var s = 'ключевого слова';
fDiv.innerHTML = fDiv.innerHTML.replace(/s/gi, "<b>" + s + "</b>");
</script>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)