从html字符串中删除div及其内容

Koi*_*ski 2 html javascript regex jquery

可以说我有一个像这样的字符串:

<div id="div1"></div>
<div class="aClass" id="div2">  
   <div id="div3" class="anotherClass"></div>
   <div id="div4" />
</div>
<div id="div5"></div>
Run Code Online (Sandbox Code Playgroud)

我想从字符串和div中的所有内容中删除div2

所以我得到了这样的字符串

<div id="div1"></div>
<div id="div5"></div>
Run Code Online (Sandbox Code Playgroud)

我想像使用正则表达式来找到id为"div2"的第一个div或者div的id是什么,并计算括号,直到它变为"</ div>".问题是"div3"最后还有一个"</ div>".

我要删除的div的内容可能包含更多或更少的div,然后这也是.

有关如何编码的任何想法?

更新:

                var htmlText = editor3.getValue();
            var jHtmlObject = jQuery(htmlText);
            jHtmlObject.find("#div2").remove();
            var newHtml = jHtmlObject.html();
            console.log(newHtml);
Run Code Online (Sandbox Code Playgroud)

为什么这不会在控制台中返回任何内容?

Update2!:我已经制作了一个jsFiddle让我的问题可视化.. http://jsfiddle.net/WGXHS/

Pat*_*ans 13

只需将字符串放入jQuery并使用find然后删除即可.

var htmlString = '<div id="div1"></div>\
<div class="aClass" id="div2">\ 
   <div id="div3" class="anotherClass"></div>\
   <div id="div4" />\
</div>\
<div id="div5"></div>';

var jHtmlObject = jQuery(htmlString);
var editor = jQuery("<p>").append(jHtmlObject);
editor.find("#div2").remove();
var newHtml = editor.html();
Run Code Online (Sandbox Code Playgroud)