【发布时间】:2012-12-06 21:26:24
【问题描述】:
如何使用 JavaScript 对 HTML 属性进行排序?
我有这个 HTML:
<table>
<tbody>
<tr>
<td>Cell 0,0</td>
<td>Cell 1,0</td>
<td>Cell 2,0</td>
</tr>
<tr>
<td>Cell 0,1</td>
<td rowspan="2" colspan="2">Cell 1,1
<br>Cell 2,1
<br>Cell 1,2
<br>Cell 2,2</td>
</tr>
<tr>
<td>Cell 0,2</td>
</tr>
</tbody>
</table>
我想将所有元素中的所有属性按字母顺序排序。例如:
<td colspan="2" rowspan="2">Cell 1,1
排序函数可以基于 HTML 字符串、jQuery 对象或节点(不管是哪一个)。
我需要这个的原因是因为我在 2 组 HTML 之间做一个差异(使用 JS,在浏览器中,在单元测试失败后),并且属性顺序使其失败。
所以我的问题是:
如何重新排序节点属性? 或者如何重新排序 HTML 字符串中的属性? 或者如何重新排序 jQuery 元素属性?
我还没有任何代码,因为我不确定哪种方法最好。
【问题讨论】:
-
更重要的是,你为什么要这样做?
-
你所描述的毫无意义,几乎是荒谬的。属性根本没有“顺序”。如果您希望它们在您的 HTML 源代码 中排序,那么这与 JavaScript 没有太大关系,除非您的编辑器/IDE 具有内置的 JavaScript 解释器。
-
^ 同意,到了 NARQ =/
-
@Diodeus — 这是一种编码风格。有利于它的论据。
-
Petah,我想在编写代码以(尝试)重新排列属性之前,我只需要编写一个自定义 HTML-diff(不是 text-diff)来处理这个问题。无论如何,假设您尝试在浏览器中执行此操作,并且差异仅用于显示目的。如果您需要生成一个实际的差异文件,而不是在 Web 浏览器中,JavaScript 似乎是一个奇怪的选择......
标签: javascript html regex