Подтвердить что ты не робот

Jquery найти и заменить текст без идентификатора элемента

Я играю с поиском и заменой текста.

Единственная проблема, с которой я столкнулся, - найти текстовую строку, которая не привязана к элементу с идентификатором. В противном случае это было бы легко.

Я пробую что-то вроде этого:

$("*").each(function () {
    $(this).html(this.html().replace('Original Text','New Text'));
});

Не работает слишком хорошо.
Кто-нибудь сталкивался с этим раньше?

Кроме того, если у меня есть несколько слов или фраз для поиска и замены, как это влияет на скорость/мощность обработки пользовательского браузера? Является ли это памятью?

4b9b3361

Ответ 1

Takpar, ваш код тоже работает. Кажется, что он остановил несколько других действий от работы, но только элементы, которые я динамически вытягиваю. Например, когда я использую .ajax(). Не знаю, почему, но почему я столкнулся. Я буду тестировать больше.

В соответствующей теме работает код Gumbo:

$("*").each(function () {
    if ($(this).children().length == 0) {
        $(this).text($(this).text().replace('Subject:','Name:'));
    }
});

Единственное, с чем я столкнулся, это замена текста, загружаемого после загрузки страницы.

У меня есть некоторые функции javascript, которые отображают данные с сервера, но только после того, как страница загрузила все элементы. Например, пользователь выбирает значение из раскрывающегося списка, которое инициирует событие для загрузки списка продуктов из базы данных.

Я отформатирую некоторые из таких продуктов, как это:

Granny Smith Apples
Price: x.xx per pound
Nutritional facts....

Я хочу только заменить слово "Цена" и, возможно, заменить его "Стоимость:".

Но, как я уже упоминал, эти данные еще не загружены.

Я имею ограничение, с которым я должен жить?

Ответ 2

$("*").contents().each(function() {
    if(this.nodeType == 3)
        this.nodeValue = this.nodeValue.replace("old", "new");
});

Ответ 3

почему бы вам просто не использовать:

$('body').html($('body').html().replace('Original Text','New Text'));

Ответ 5

$("*").each(function () { 
if ($(this).children().length == 0){ 
     $(this).html($(this).html().replace(/Old String/g, "New String"));
}});