标签可以具有多个属性。属性在代码中出现的顺序无关紧要。例如:
<a href="#" title="#">
<a title="#" href="#">
如何在Javascript中“标准化” HTML,因此属性的顺序始终相同?我不在乎选择哪个顺序,只要顺序始终相同即可。
更新:我的最初目标是使比较(在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代码。