有没有办法使用jQuery删除一个关闭的HTML-Tag?
示例:
<div class="one">
<div class="two">CONTENT</div>
</div>
</div>
我必须删除最后一个,这意味着div.one关闭后关闭div标签。
不幸的是我必须使用JS / jQuery这样做,因为我在这个项目上使用的系统无法删除它。
答案 0 :(得分:5)
不,那是不可能的。页面中根本没有关闭标签。
结束标记在解析之前存在于HTML代码中,一旦解析完每个元素是一个对象,而不是标记中的起点和终点。
浏览器会尝试修复无效标记,但问题是不同的浏览器会做不同的事情。某些浏览器可能会忽略额外的结束标记,而其他浏览器可能会暗示开始标记使其成为完整元素。您可以尝试重新排列元素,使它们恢复到没有额外结束标记的状态,但要做到这一点,您需要知道在解析代码时所有不同的浏览器将会做什么。
更糟糕的是,如果该代码在另一个div
内,那么那个标签就会在那里结束,而无效代码将在此之后出现。如何处理取决于代码在您所显示的代码之外的内容,以及不同的浏览器可能以不同的方式处理无效代码。
答案 1 :(得分:0)
克隆方法:
$tmp = $('.one').clone( true );
$('#wrapper').empty().append($tmp)