标签可以有多个属性。属性在代码中出现的顺序并不重要。例如:
<a href="#" title="#">
<a title="#" href="#">
我如何“规范化”Javascript 中的 HTML,使属性的顺序始终相同?我不在乎选择哪个顺序,只要它总是相同的。
UPDATE : 我最初的目标是使(在 JavaScript 中)2个 HTML 页面之间的细微差异更容易区分。因为用户可以使用不同的软件来编辑代码,所以属性的顺序可能会发生变化。这使得差异太冗长。
答案 : 好吧,首先感谢所有的答案。是的,这是可能的。我是这样做的。这是一个概念的证明,它当然可以被优化:
function sort_attributes(a, b) {
if( a.name == b.name) {
return 0;
}
return (a.name < b.name) ? -1 : 1;
}
$("#original").find('*').each(function() {
if (this.attributes.length > 1) {
var attributes = this.attributes;
var list = [];
for(var i =0; i < attributes.length; i++) {
list.push(attributes[i]);
}
list.sort(sort_attributes);
for(var i = 0; i < list.length; i++) {
this.removeAttribute(list[i].name, list[i].value);
}
for(var i = 0; i < list.length; i++) {
this.setAttribute(list[i].name, list[i].value);
}
}
});
对于 diff 的第二个元素 $('#different')
也是如此。现在,$('#original').html()
和 $('#different').html()
以相同的顺序显示具有属性的 HTML 代码。