html中怎么写jq,用jQuery替换HTML页面中的文本
如何替換jQuery中的任何字符串?
假設我有一個字符串"-9o0-9909",我想用另一個字符串替換它。
在問問題之前如何使用jQuery將HTML塊替換為HTML塊的可能重復,最好檢查一下系統在輸入問題標題時提出的自動建議
您能否詳細說明為什么您認為jquery是必經之路-到目前為止的答案可能不正確。
我可以在c#頁面,javascript,數據庫和html頁面中更改文本,但是我在考慮是否有可能在頁面加載后使用jquery來實現。 我正在嘗試節省時間并學習新的東西:)
您可以使用以下內容替換頁面正文中第一個出現的單詞:
var replaced = $("body").html().replace('-9o0-9909','The new string');
$("body").html(replaced);
如果要替換所有出現的單詞,則需要使用正則表達式并將其聲明為全局/g:
var replaced = $("body").html().replace(/-1o9-2202/g,'The ALL new string');
$("body").html(replaced);
如果您想要一個班輪:
$("body").html($("body").html().replace(/12345-6789/g,'abcde-fghi'));
您基本上是將頁面標記內的所有HTML都帶入一個字符串變量,使用replace()查找并用新字符串更改首次出現的找到的字符串。或者,如果您要查找并替換所有出現的字符串,請在混合中引入一些正則表達式。
在此處查看演示-在左上方查看HTML,以查看原始文本,下方的jQuery和右下方的輸出。
代碼工作得很好,謝謝scoobler。 jQuery(function($){var replace = $(" body")。html()。replace(/ 12212-522-1212 / ig,2121-2121-0000); $(" body")。html(replaced) ;});
我認為這不是非常有效...我們應該尋找更好的解決方案!
該解決方案不好,因為它更改了HTML DOM。它正在替換完整的HTML,因此重新插入了頁面上的所有內容,這對于簡單的網站來說還不錯,但是如果您有很多JavaScript,隨著DOM的更改,它們將被破壞。
除了是一個好的解決方案之外,$(" body")。html()將沒有body標簽。如果您打算替換body標簽或其屬性上的某些內容,請使用externalHTML。
是的,這樣做會重新觸發頁面上的腳本;除了最簡單的情況外,它不是解決所有問題的通用解決方案。
就像該線程中提到的其他內容一樣,替換整個HTML主體不是一個好主意,因為它會重新插入整個DOM,并有可能破壞作用于這些元素的任何其他JavaScript。
相反,使用jQuery過濾器僅替換頁面上的文本,而不替換DOM元素本身:
$('body :not(script)').contents().filter(function() {
return this.nodeType === 3;
}).replaceWith(function() {
return this.nodeValue.replace('-9o0-9909','The new string');
});
this.nodeType是我們要替換其內容的節點的類型。 nodeType 3是文本。在此處查看完整列表。
是的,這一個沒有破壞javascript,而另一個沒有破壞javascript,大大的進步!
...I have a string"-9o0-9909" and I want to replace it with another string.
下面的代碼可以做到這一點。
var str = '-9o0-9909';
str = 'new string';
除了玩笑,用JavaScript替換文本節點并非易事。
我寫了一篇關于此的文章:用JavaScript替換文本。
鏈接上的代碼幾乎可以處理所有情況。對我來說,它在集合中的上令人不快(child是null),并且在splitText上還會發生莫名其妙的崩潰,其原因是"分割偏移超出了文本節點的長度"。同樣,"畫布"拼寫為" cavas"。不過,+ 1。
@bishop謝謝,我絕對需要更新該帖子。
別客氣。我喜歡遵循您的代碼這么短而又容易,我只是無法讓它適應我的用例。我最終選擇了padolseys的findAndReplaceDOMText庫-重量更大,但涵蓋了我能找到的所有常見情況。
html替換的想法很好,但是如果對document.body完成操作,頁面將閃爍并且廣告將消失。
我的解決方案:
$("*:contains('purrfect')").each(function() {
var replaced = $(this).html().replace(/purrfect/g,"purrfect");
$(this).html(replaced);
});
查閱Padolsey關于DOM查找和替換的文章,以及實現所描述算法的庫。
在此示例用法中,我用tel:方案鏈接替換了看起來像美國電話號碼的中的所有文本:
findAndReplaceDOMText(document.getElementById('content'), {
find:/\b(\d\d\d-\d\d\d-\d\d\d\d)\b/g,
replace:function (portion) {
var a = document.createElement('a');
a.className = 'telephone';
a.href = 'tel:' + portion.text.replace(/\D/g, '');
a.textContent = portion.text;
return a;
}
});
var replaced = $("body").html().replace(/-1o9-2202/g,'The ALL new string');
$("body").html(replaced);
對于變量:
var replaced = $("body").html().replace(new RegExp("-1o9-2202","igm"),'The ALL new string');
$("body").html(replaced);
$("#elementID").html("another string");
http://api.jquery.com/html/
它們并不總是相同的id,可以是不同的類名或id名稱。如果我只有1個班級名稱或ID名稱,那不是很難,但大多數時候都是隨機的。
因此,您想在整個HTML樹中搜索一個字符串,然后替換它?
總結
以上是生活随笔為你收集整理的html中怎么写jq,用jQuery替换HTML页面中的文本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 理财产品后面的数字是什么?原来是这个作用
- 下一篇: 2017年html5行业报告,云适配发布