2015-06-28 2 views
0

Что является самым простым способом сделать замену строк в документе целиком с помощью таблицы замены? Я имею в виду наличие списка пар старых и новых значений для замены всех строк в документе (но не значений элементов ввода или выбора).javascript найти и заменить весь документ

+1

Если вы хотите, лучший способ сделать что-то, вы должны показать нам, что вы пробовали до сих пор. –

+1

А также какие рамки/библиотеки вы используете. –

+0

Я использую wordpress и хочу добавить некоторые js (jQuery также может быть использован). И что у меня есть? Я могу использовать for statement и вызывать что-то вроде этого $ ("body"). Children(). Each (function() { $ (this) .html ($ (this) .html(). Replace (old, new)); }); Но может быть, более сложный способ и отсутствие входных элементов? – zwora

ответ

0

попробовать что-то вроде этого (Не забудьте добавить JQuery первый):

$(document).ready(function(){ 
    $("body").children().each(function(){ 
     var $this = $(this); 
     if($this.prop("tagName").toLowerCase() == "input" || $this.prop("tagName").toLowerCase() == "select"){ 
      continue; 
     } 
     else if($this.text() == "hello"){ 
      $this.text("Bye"); 
     } 
    }); 
}); 

Если вы хотите сохранить запись для старых значений, которые вы можете сделать что-то вроде этого:

$(document).ready(function(){ 
    var older_values = []; 
    $("body").children().each(function(){ 
     var $this = $(this); 
     if($this.prop("tagName").toLowerCase() == "input" || $this.prop("tagName").toLowerCase() == "select"){ 
      continue; 
     } 
     else if($this.text() == "hello"){ 
      older_values.push($this.text()); 
      $this.text("Bye"); 
     } 
    }); 
}); 

* Редактировать * Чтобы захватить все элементы внутри тега тела, просто замените:

$("body").children() 

с

$("body").find("*") 

Надежда, которая работает для вас

+0

Благодарим вас за код. К сожалению, это не работает в моем случае. Вначале, если предложение вызывает проблему, но после удаления этого (и слова else, конечно) код работает, но не заменяет текст (добавлен jQuery - другие функции, использующие jQuery, работают хорошо). Я поставил alert (this.text()), и кажется, что проверяются только элементы highets, не копаясь в divs интерьерах. И текст, который я могу добавить в wp, находится внутри нескольких div. – zwora

Смежные вопросы