JQuery заменить строки во многих классах
3206 просмотра
3 ответа
Я пытаюсь использовать jQuery для замены всех вхождений определенной строки, которая встречается в определенном классе. На странице есть несколько классов этого типа.
Пока у меня есть следующий код:
var el = $('div.myclass');
if(el != null && el.html() != null )
{
el.html(el.html().replace(/this/ig, "that"));
}
Это не работает, если есть более одного div с классом myclass
. Если есть более одного div, то второй div заменяется содержимым первого! Это как если бы jQuery выполнял замену первого div, а затем заменял все классы myclass
с результатом.
Кто-нибудь знает, как я должен это делать? Я думаю, что какой-то цикл по всем случаям mychass
div - но мой JS немного слаб.
Ответы (3)
2 плюса
немного отличается от предыдущего ответа:
$('div.myclass').each(function(i, el) {
if($(el).html() != "" ) {
$(el).html($(el).html().replace(/this/ig, "that"));
}
});
должно сработать
Автор: user180100 Размещён: 17.10.2009 11:593 плюса
Я думаю, что вы ищете что-то вроде этого:
$('div.myclass').each(function(){
var content = $(this).html();
content = content.replace(/this/ig,'that');
$(this).html(content);
});
(не проверено)
Автор: Kristoffer Sall-Storgaard Размещён: 17.10.2009 11:570 плюса
Если содержимое ваших .myclass
элементов является чисто текстовым, вы можете сойти с рук. Но если они содержат другие элементы, ваша обработка регулярных выражений может изменить значения атрибутов по ошибке. Не обрабатывайте HTML с помощью регулярных выражений.
Также, записав в innerHTML
/ html()
, вы потеряете все несериализуемые данные в любом дочернем элементе, например, значения полей формы, обработчики событий и другие ссылки JS.
function isTextNode(){
return this.nodeType===3; // Node.TEXT_NODE
}
$('div.myclass, div.myclass *').each(function () {
$(this).contents().filter(isTextNode).each(function() {
this.data= this.data.replace(/this/g, 'that');
});
});
Автор: bobince
Размещён: 17.10.2009 12:54
Вопросы из категории :
- javascript Как определить, какой из указанных шрифтов был использован на веб-странице?
- javascript Валидация клиентской стороны ASP.Net
- javascript Длина объекта JavaScript
- javascript Получение текста из выпадающего списка
- javascript Скрипт входа со скрытыми кнопками
- javascript Как автоматически изменить размер текстовой области с помощью Prototype?
- jquery Прокрутка переполненных DIV с помощью JavaScript
- jquery Экранирование строк HTML с помощью jQuery
- jquery Как сравнить HTML-сущность с JQuery
- jquery Есть ли функция "существует" для jQuery?
- jquery Как удалить все параметры в окне выбора, а затем добавить один вариант и выбрать его с помощью jQuery?
- jquery Получение идентификатора элемента, который вызвал событие
- dom Как программно установить значение элемента select box, используя JavaScript?
- dom Как определить, виден ли элемент DOM в текущем окне просмотра?
- dom Как проверить, скрыт ли элемент в jQuery?
- dom Синтаксический анализ XML - ElementTree против SAX и DOM
- dom Как изменить класс элемента с помощью JavaScript?