Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery.parseHTML()解析html字符串,更改数据并返回字符串_Jquery - Fatal编程技术网

使用jquery.parseHTML()解析html字符串,更改数据并返回字符串

使用jquery.parseHTML()解析html字符串,更改数据并返回字符串,jquery,Jquery,我使用jquery parseHTML加载到DOM中,然后搜索关键字并在关键字周围放置一个带有类的span标记,然后希望将其返回到字符串中并插入主字符串中 var mainStr = '<div>... a long html ...</div>' var-mainStr=”。。。一个长长的html…' 以下是html主字符串的一部分。我有一个位置,在一些更改之后,我将把它插入主字符串中 var str ='<span></span&

我使用jquery parseHTML加载到DOM中,然后搜索关键字并在关键字周围放置一个带有类的span标记,然后希望将其返回到字符串中并插入主字符串中

    var mainStr = '<div>... a long html ...</div>'
var-mainStr=”。。。一个长长的html…'
以下是html主字符串的一部分。我有一个位置,在一些更改之后,我将把它插入主字符串中

    var str ='<span></span> Here is <a href="someurl">xxxxx </a> a presentation of certain statements';

    var myHtml = $.parseHTML(str);
   var keyword = 'presentation'.
   $.each(myHtml, function (i, el) {
   if (el.nodeName == '#text') {
      var loc = el.nodeValue.search(keyword);
   if(loc >0)
      el.nodeValue = el.nodeValue.replace(keyword, "<span class='redColor'>" + keyword + "</span>");
     });
var str='这里是某些语句的表示';
var myHtml=$.parseHTML(str);
var关键字='presentation'。
$.each(myHtml,函数(i,el){
如果(el.nodeName=='#text'){
var loc=el.nodeValue.search(关键字);
如果(loc>0)
el.nodeValue=el.nodeValue.replace(关键字“+”关键字+”);
});
问题是如何将myHtml对象恢复为字符串,例如:

 <span></span> Here is <a href="someurl">xxxxx </a> a <span class="redColor">presentation</span> of certain statements'
以下是某些语句的演示文稿'
插入到mainHtml字符串中


谢谢您的帮助。

您不应该用html内容更新文本节点的节点值,它将不会被解析

相反,您可以用更新的html结构替换文本节点,如

var str='这里是某些语句的表示';
var关键字='presentation';
var myHtml=$(“”{
html:str
});
myHtml.contents().contents().addBack().each(函数()){
if(this.nodeType==Node.TEXT\u Node){
var loc=this.nodeValue.search(关键字);
如果(loc>0){
变量$tmp=$(''{
html:this.nodeValue.replace(关键字“+”关键字+”)
})
$(this.replaceWith($tmp.contents());
}
}
})
var html=myHtml.html();
$(“#结果”).text(html);