任何人都可以回答是否可以删除以错误方式关闭的元素。示例(注意div.separator):
<div class="outer">
<div class="inner">
Content
</div>
<div class="separator" />
<div class="inner">
Content
</div>
</div>
jQuery无法以标准方式删除:jQuery('div.separator').remove();
由于
答案 0 :(得分:4)
这不是删除以错误方式关闭的元素的问题,而是浏览器使用错误代码所做的事情。
浏览器将尽可能地解析不正确的代码,并从中创建元素。 DOM不会包含任何错误关闭的元素,浏览器将始终从代码中创建正确的元素,但不确定它实际将创建哪些元素。
由于没有关于如何解释错误代码的标准,每个浏览器都有自己的方法来修复代码,以便它可以从中创建元素。可以忽略/
,将inner
div放在separator
div中,浏览器可以接受自闭的div,尽管它不正确,或者标签可以完全被忽略。< / p>
由于没有单一的方法将此代码作为元素结束,因此没有一种方法可以删除适用于所有浏览器的元素。
答案 1 :(得分:1)
Guffa显然是正确的......经过一些测试后,Firefox(v3.6),Chrome(8.0)&amp; IE(8.0)的行为方式相同,即第二个内部div嵌套在分隔符div中。对于这三种浏览器,至少可以:
var separator = $('div.separator');
separator.children().insertAfter(separator);
separator.remove();
其他浏览器或这些浏览器的未来版本的里程可能会有所不同。