Содержание
Я играю с поиском и заменой текста.
Единственная проблема, с которой я столкнулся, — найти текстовую строку, которая не привязана к элементу с идентификатором. В противном случае это было бы легко.
Я пробую что-то вроде этого:
Не работает слишком хорошо.
Кто-нибудь сталкивался с этим раньше?
Кроме того, если у меня есть несколько слов или фраз для поиска и замены, как это влияет на скорость/мощность обработки пользовательского браузера? Является ли это памятью?
jquery replace find
5 ответов
6 Решение coffeemonitor [2010-02-28 02:30:00]
Takpar, ваш код тоже работает. Кажется, что он остановил несколько других действий от работы, но только элементы, которые я динамически вытягиваю. Например, когда я использую .ajax() . Не знаю, почему, но почему я столкнулся. Я буду тестировать больше.
В соответствующей теме работает код Gumbo:
Единственное, с чем я столкнулся, это замена текста, загружаемого после загрузки страницы.
У меня есть некоторые функции javascript, которые отображают данные с сервера, но только после того, как страница загрузила все элементы. Например, пользователь выбирает значение из раскрывающегося списка, которое инициирует событие для загрузки списка продуктов из базы данных.
Я отформатирую некоторые из таких продуктов, как это:
Я хочу только заменить слово "Цена" и, возможно, заменить его "Стоимость:".
Но, как я уже упоминал, эти данные еще не загружены.
Я имею ограничение, с которым я должен жить?
Часто необходимо найти и заменить текст на сайте, но времени или лень этого не позволяет, поэтому работаем через скрипт а именно с jquery библиотекой внизу приведено пару примеров как это можно сделать:
jQuery(function () <
jQuery(":contains(FIND)").not(":has(:contains(FIND))").each(function () <
var that = $(this);
var html = that.html();
$(function() <
//Задайте строку для поиска, замены и место поиска:
var phrase = "your search string";
var replacement = "new string";
var context = $(body);
context.html(
context.html().replace(‘/’+phrase+’/gi’, replacement);
);
>);
var el = $(‘p’);
el.html(el.html().replace(/Искомый_текст/ig, "Текст"));
document.getElementBy ).innerHTML.replace(/Искомый_текст/ig, ‘Текст’);
комментария 3 для записи Поиск и замена текста JS (jQuery)
Статья не отражает сути заголовка. Стоит переименовать в «Поиск и замена текста при помощи jQuery».
Любезнейший mozdev, как же она не отражает, jQuery это все тот же по сути JavaScrypt, при том в конце пример на чистом ява скрипте, ну если прям так бросается исправлю на jQuery.
Статья, в которой рассмотрим, какие в jQuery есть методы для чтения и изменения содержимого HTML элементов.
В jQuery имеются три метода, которые позволяют напрямую работать с контентом элемента:
- html – для чтения и изменения HTML содержимого элемента;
- text – для чтения и изменения текстового содержимого элемента;
- val – для чтения и изменения значения элементов формы.
Чтение HTML контента элемента
Например, получим HTML содержимое элемента с идентификатором ( id ) contact :
Если выборка содержит несколько элементов, то данный метод вернёт HTML контент только первого элемента:
Для того чтобы получить HTML контент всех найденных элементов необходимо воспользоваться циклом (например, each ):
Изменение HTML контента элемента
Например, заменим содержимое элемента ul :
Если на странице будет несколько элементов ul , то данный метод заменит содержимое каждого из них.
Если необходимо изменить контент только у одного элемента на странице, то наиболее просто это сделать через id .
Использование функции для замены HTML контента элемента:
Например, изменим контент элементов (зачеркнём старый контент и добавим рядом новый):
Получение текстового содержимого элемента
В jQuery получение содержимого элемента в виде обычного текста осуществляется с помощью метода text . При этом все HTML теги, если они присутствуют в контенте, будут вырезаны.
Например, получим текстовое содержимое элемента p и выведем его в контент другого элемента:
Метод text также как и html возвращает содержимое только первого элемента выборки (если в ней присутствуют несколько элементов).
Замена контента элемента указанным текстом
Метод text может использоваться не только для чтения, но и для изменения содержимого указанного элемента. При этом HTML теги (если они присутствуют в тексте) будут закодированы с помощью спецсимволов.
После выполнения, элемент div с классом info будет иметь следующий HTML код:
На экране данный элемент будет выглядеть так:
Если в выборке присутствует несколько элементов, то метод text заменит содержимое каждого из них:
Использование в качестве параметра метода text функции (добавим в скобках к содержимому каждого выбранного элемента длину его текстовой информации):
Удаление контента элемента
В jQuery для удаления содержимого элемента имеется метод empty . Данный метод не только удаляет элементы, но и другие его дочерние узлы, включая текст.
Например, удалим содержимое всех элементов с классом vote :
Получение значения элемента формы
В jQuery чтение значений элементов input , select и textarea осуществляется посредством метода val .
Например, получим значение элемента input :
Метод val , если в коллекции присутствует несколько элементов, вернёт значение только первого из них.
Для получения значения выбранного элемента ( select , checkbox , или radio кнопок) используйте :checked .
Если коллекции нет элементов, то метод val возвращает значение undefined .
Например, получим значение элемента textarea , имеющего имя description :
Получим значение элемента select :
Если элемент select имеет множественный выбор (атрибут multiple ), то метод val возвратит в качестве результата массив, содержащий значение каждой выбранной опции ( option ). Если ни одна опция не отмечена, то данный метод вернёт в качестве ответа пустой массив (до версии jQuery 3 значение null ).
Установка значения элементу формы
Изменение значения элемента формы в jQuery осуществляется с помощью метода val .
Например, при клике на кнопку установим элементу input её текст:
Данный метод устанавливает значение для всех элементов набора, к которому он применяется.
Например, преобразуем все буквы значения элемента input после потеря фокуса в прописные:
Например, поменяем значение элемента select :
Например, присвоим значения элементу select с множественным выбором ( multiple ):