2015-06-28 128 views
0

什麼是使用替換表在整個文檔中進行字符串替換的最簡單方法?我的意思是有一對舊值和新值的列表來替換文檔中的所有字符串(但不包括輸入值或選擇元素的值)。JavaScript查找並替換整個文檔

+1

作品如果你想更好的辦法做的事情,你應該告訴我們你有什麼到目前爲止已經試過。 –

+1

還有你使用的是什麼框架/庫。 –

+0

我正在使用wordpress並希望添加一些js(也可以使用jQuery)。我有什麼?我可以使用for語句並調用類似$(「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

謝謝你的代碼。不幸的是,它不適用於我的情況。首先,如果子句導致問題,但刪除後(當然還有其他詞)代碼工作,但不會取代文本(jQuery被添加 - 其他函數使用jQuery工作良好)後。我把警報(this.text()),似乎只檢查高級元素,而不挖掘div div內部。我可以在wp中添加的文本在少數div中。 – zwora