Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 9
1

Замена определенного символа во всем элементе

07.12.2016, 19:03. Показов 795. Ответов 6

Author24 — интернет-сервис помощи студентам
Привет всем знатокам JavaScript :-)

У меня к вам следующий вопрос. Имеется сайт примерно с такой структурой:

HTML5
1
2
3
4
5
6
7
...
<table id="comments">
<tr>
<td>Какой-то текст+ Еще какой-то текст+ Еще какой-то текст.</td>
</tr>
</table>
...
Проблема заключается в том, что в местах переноса текста автоматически вставляется символ "+", что вы можете увидеть на примере Выше.

Итак, моя задача - написать js-скрипт, который вместо символа "+" будет вставлять тег <br>.

Как заменить текст я, вроде бы, разобрался. А вот как сделать цикл, который менял бы символ "+" во всей таблице "comments" я не знаю.

Примерный порядок моих действий заключался в следующем.
1. Получил все теги td из таблицы comments и записал их в массив array.
Javascript
1
var array = document.getElementById('comments').getElementsByTagName('td')
2. Получил доступ к определенному элементу td и сделал в нем замену "+" на <br>
Javascript
1
2
var ar = array[1].innerHTML;
ar = ar.replace(/\+/g, "<br>")
3. Присвоил измененное значение исходному элементу:
Javascript
1
array[1].innerHTML = ar;
Как все это переделать для работы в цикле я не знаю.
И попутный вопрос. Разумеется, этот цикл будет менять все плюсы в элементе. Но можно ли как-нибудь сделать так, чтобы те плюсы, которые на самом деле были набраны с клавиатуры, а не вставлялись вместо переноса строки, так и оставались плюсами?

Надеюсь на вашу помощь и заранее спасибо. :-)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2016, 19:03
Ответы с готовыми решениями:

Поиск определенного слова в строке и замена определенного символа после этого слова
Представим что у нас есть следующая строка: &quot;Дядя Петя 10 раз ударил дядю Васю, но дядя Вася...

Замена определенного символа в программе
Здравствуйте! Есть txt файл. Необходимо найти запятую и поменять(везде) на точку запятую. И...

Замена определенного символа в строке
Добрый день! Задача такая: есть строка вида &quot;00000001&quot; Если первые два символа &quot;00&quot;, то заменить...

Поиск и замена только при условии наличия определенного символа перед искомой строкой
Нужно сделать замену в документе word по следующему шаблону: &quot;(не точка);пробел;перенос строки&quot; на...

6
Юзер с абсолютным слухом
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
07.12.2016, 21:02 2
Пока что на первый вопрос:
Javascript
1
2
3
4
5
6
var array = document.getElementById('comments').getElementsByTagName('td')
for(var i=0;i<array.length;i++){
    var ar = array[i].innerHTML;
    ar = ar.replace(/\+/g, "<br>");
    array[i].innerHTML = ar;
}
1
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 9
08.12.2016, 11:21  [ТС] 3
Спасибо, все работает. Но возникла еще одна проблема. Когда удаляется или добавляется новый комментарий содержимое таблицы comments перезагружается, и вместо переноса вновь появляются плюсы. Можно ли это как-нибудь исправить?
0
Юзер с абсолютным слухом
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
08.12.2016, 12:29 4
Можно. Впишите этот код в тот код, который отвечает за вывод комментариев. На пример:
Javascript
1
2
3
request.onreadystatechange = function(){
    // ... тут код замены плюсов
}
1
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 9
08.12.2016, 14:23  [ТС] 5
Извините, если задаю много вопросов, но можно подробнее?

Я нашел код, который обновляет и выводит комментарии после их добавления или удаления.
Javascript
1
parent.reloadMessages('65');
Это с ним мне нужно как-то взаимодействовать?

Честно говоря, не пойму, как.

Добавлено через 11 минут
Попытался сделать так:
Javascript
1
2
3
4
5
6
7
8
9
parent.reloadMessages('65');
request.onreadystatechange = function(){
    var array = document.getElementById('comments').getElementsByTagName('td')
    for(var i=0;i<array.length;i++){
    var ar = array[i].innerHTML;
    ar = ar.replace(/\+/g, "<br>");
    array[i].innerHTML = ar;
}
}
Пишет, что функция request не определена.
Добавил var впереди - пишет, что не знает, что делать с точкой.
0
Юзер с абсолютным слухом
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
08.12.2016, 14:48 6
request - это я чисто к примеру. А reloadMessages('65'); это только вызов функции, которая обновляет и выводит комментарии, а объявляется (описывается) она где-то в другом месте кода. Вот туда и добавьте замену плюсов - как в первом моём посте и без request.

Добавлено через 9 минут
Добавьте именно во внутрь объявления, а не после него. Т. е., перед закрывающей скобкой }
1
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 9
09.12.2016, 19:53  [ТС] 7
Большое спасибо за помощь
0
09.12.2016, 19:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2016, 19:53
Помогаю со студенческими работами здесь

Удалить часть строки от определенного символа до определенного символа
Всем привет, есть строка 127.0.0.1(spec) (domen\admin - user) как удалить не нужные символы,...

Считывание от определенного символа до другого определенного символа
Привет всем, можете помочь мне с кодом одним? Мне нужно что бы начиналось чтение от определенного...

Считать из файла от определенного символа(слова) до определенного символа(слова)
Считываем текст из файла. Допустим от слова &quot;Qwerty&quot; до слова &quot;Uiop&quot;. Примерно догадываюсь как это...

Копирование от определенного символа до определенного символа
Такая задача есть строки и нужно скопировать после символа * и до третьего пробела 2281488 Г Ц ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru