Thẻ có thể có nhiều thuộc tính. Thứ tự các thuộc tính xuất hiện trong mã không quan trọng. Ví dụ:
<a href="#" title="#">
<a title="#" href="#">
Làm cách nào để tôi có thể "bình thường hóa" HTML trong Javascript để thứ tự của các thuộc tính luôn giống nhau? Tôi không quan tâm thứ tự được chọn, miễn là nó luôn giống nhau.
CẬP NHẬT : mục tiêu ban đầu của tôi là làm cho 2 trang HTML khác nhau (trong JavaScript) dễ dàng hơn với những khác biệt nhỏ. Vì người dùng có thể sử dụng phần mềm khác nhau để chỉnh sửa mã nên thứ tự của các thuộc tính có thể thay đổi. Điều này làm cho sự khác biệt quá dài.
TRẢ LỜI : Vâng, đầu tiên cảm ơn vì tất cả các câu trả lời. Và CÓ, nó hoàn toàn có thể. Đây là cách tôi quản lý để làm điều đó. Đây là một bằng chứng về khái niệm, nó chắc chắn có thể được tối ưu hóa:
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);
}
}
});
Điều tương tự cho phần tử thứ hai của khác biệt , $('#different')
. Bây giờ $('#original').html()
và $('#different').html()
hiển thị mã HTML với các thuộc tính theo cùng một thứ tự.