删除重复标记

时间:2012-06-27 21:00:33

标签: javascript jquery

我有一个页面,由具有错误LI元素的服务器生成,带有两个关闭的li标签

<li>Whatever</li></li>

所有jQuery操作在Firefox中运行良好,但在IE(7和8)中运行不正常。我想在开始我的功能之前删除重复的</li>,我该怎么做?

2 个答案:

答案 0 :(得分:4)

无法通过客户端进行修复,除非您拥有违反逻辑意义的浏览器。 jQuery控制DOM,而不是原始HTML,因此,它无法编辑已擦除的损坏标记。只需修复服务器端脚本。

如果你真的想要一个hacky,糟糕,糟糕的JS解决方案,你可以在加载该页面之后AJAX请求页面本身,从页面中删除AJAX调用(以避免无限循环),删除损坏的元素然后在新窗口中加载HTML。请不要那样做。

答案 1 :(得分:1)

如果可能,您当然应该修复生成页面的代码。

如果不可能,你前面的路很艰难。您无法修复标记,因为在您可以对其执行任何操作之前对其进行了解析,因此您必须修复从损坏的标记生成的任何浏览器。

每个浏览器都有不同的处理错误代码的方式,因此您必须测试可以使用的每个可能的浏览器,包括每个当前版本的Internet Explorer(7,8,9,10和可能的6) )。这是一个痛苦的屁股,因为你一次只能安装一个版本的IE。幸运的是,您可以使用较新版本的开发人员工具来模拟旧版本,但它仍然不是100%准确的模拟。

某些浏览器可能会忽略额外的结尾标记,而某些浏览器会添加额外的列表元素。您必须编写代码来处理从标记生成的每个浏览器,并修复元素。