2009-11-02 38 views
0

所以我得到這個代碼片段:jQuery:找到並用jQuery替換清潔語法?和先進的查找/替換功能?

$(document).ready(function() { 
    var replacementDoneIn = $("body").html(); 
    var regExMatch = /premier(({1,5}?)?co(mpany)?([ |\.])?)?/ig; 
    var replaceWith = "Nikon"; 
    var resultSet = replacementDoneIn.replace(regExMatch, replaceWith); 
    $("body").html(resultSet); 
}); 

這是一些什麼爲我工作,但它不包括更強大和複雜的場景。

我想借助jQuery擴展查找/替換功能。正確使用body元素內部的文本的查找/替換,排除任何html元素和任何屬性及其值。

note:不完全確定jQuery text()函數如何遍歷它所應用的元素的子元素。

:據我瞭解我通過$("*")可以通過HTML的所有元素循環,但是,對於這樣的腳本創建的任何問題

所以,如果你能告訴我到正確的道路,這將不勝感激。已經解決這個問題的資源鏈接,你的建議,都可以工作。因爲由於某種原因,我的頭只產生複雜的解決方案,所以我想知道可能有更簡單的方法。

預先感謝您。

回答

1

檢查我的回答這個問題:

我貼一個簡單的函數,遍歷文本節點,替換它的內容,而不會影響標記或JavaScript連接事件處理程序。

+0

感謝CMS,雖然我沒有很好地闡述我的自我,我想你得到了我正在尋找的答案,因爲我的確有一個與.text函數有關的問題。非常感謝。 – GnrlBzik 2009-11-03 07:19:09

0

如果我理解你的問題是正確的,那麼使用text()就可以了。它只包含元素的文本節點以及該元素的任何後代。這樣做

(document.body).text(); 

將會得到你包含在文檔正文中的所有元素的文本。使用你的正則表達式來實現你所需要的。

+0

非常感謝Russ Cam提供的信息,但CMS實際上碰到了問題,我遇到了.text()這個問題,這讓我的標記混亂了一點。我沒有表達清楚,因爲我在發佈問題後才發現這個問題。 – GnrlBzik 2009-11-03 07:21:23