从html字符串中删除div及其内容
可以说我有一个像这样的字符串:
我想从字符串和div中的所有内容中删除div2
所以我得到了这样的字符串
我想像使用正则表达式来找到id为“div2”的第一个div或div的id是什么,并计算括号,直到它变为“
可以说我有一个像这样的字符串:
我想从字符串和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是一个不错的选择。 如果您在服务器端工作,则需要找到所选语言的解析器。