![](/img/trans.png)
[英]How to replace text between two XML tags using jQuery or JavaScript?
[英]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
在名为head
的var
。 首先,让我们使用stristr(head, '<title>', true)
获取标题之前的所有内容,并使用stristr(head, '</title>')
after
,并将它们存储在var
before
和after
s中,分别。 现在,最后一行很简单:
head.innerHTML = before + "<title>" + newTitle + after;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.