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