簡體   English   中英

如何使用jQuery在HTML或XML文檔的兩個標簽之間查找和替換文本?

[英]How to find and replace text in between two tags in HTML or XML document using jQuery?

我想在HTML文檔中查找和替換文本,例如在<title>標記內。 例如,

var str = "<html><head><title>Just a title</title></head><body>Do nothing</body></html>";
var newTitle = "Updated title information";

我嘗試在jQuery中使用parseXML()(下面的示例),但是它不起作用:

var doc= $($.parseXML(str));
doc.find('title').text(newTitle);
str=doc.text();

有沒有其他方法可以查找和替換HTML標簽內的文本? 正則表達式或正在使用replaceWith()或類似的東西?

我在今天早些時候使用正則表達式做了一個類似的事情:

str = str.replace(/<title>[\s\S]*?<\/title>/, '<title>' + newTitle + '<\/title>');

那應該找到並替換它。 [\\s\\S]*? 表示[任意字符,包括空格和換行符]任意次,並且? 使星號“不是貪婪的”,因此找到</title>時它將停止(更快)。

您還可以執行以下操作:

var doc = $($.parseXML(str));
doc.find('title').text(newTitle);

// get your new data back to a string 
str = (new XMLSerializer()).serializeToString(doc[0]);

這是一個小提琴: http : //jsfiddle.net/Z89dL/1/

這將是使用Java的stristr(haystack, needle, bool)方法的絕佳時機。 首先,您需要使用$('head')獲取文檔的.innerHTML ,然后使用.innerHTML獲取內容。

為了得到答案,讓我們將$('head').innerHTML在名為headvar 首先,讓我們使用stristr(head, '<title>', true)獲取標題之前的所有內容,並使用stristr(head, '</title>') after ,並將它們存儲在var beforeafter s中,分別。 現在,最后一行很簡單:

head.innerHTML = before + "<title>" + newTitle + after;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM