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

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

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

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

 

我想像使用正则表达式来找到id为“div2”的第一个div或div的id是什么,并计算括号,直到它变为“

”。 问题是“div3”最后还有一个“

”。

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

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

更新:

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

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

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

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

 var htmlString = '
\
\
\
\
\
'; var jHtmlObject = jQuery(htmlString); var editor = jQuery("

").append(jHtmlObject); editor.find("#div2").remove(); var newHtml = editor.html();

如果你有权访问jQuery并且你的HTML是DOM的一部分你可以使用$ .remove()

例如。 $('#div2').remove();

如果它不是DOM的一部分,并且你有一个字符串,你可以这样做:

$('#div2', $(myHTML)).remove();

jQuery .remove()会做的

 $("#div2").remove(); 

如果您控制生成字符串,则可以使用正则表达式选项,以便确保属性和缩进的顺序。 如果不是你最好的选择是使用HTML解析器。 如果您在浏览器中工作,jQuery是一个不错的选择。 如果您在服务器端工作,则需要找到所选语言的解析器。

Interesting Posts