แท็กสามารถมีหลายแอตทริบิวต์ ลำดับที่แอตทริบิวต์ปรากฏในโค้ดไม่สำคัญ ตัวอย่างเช่น:
<a href="#" title="#">
<a title="#" href="#">
ฉันจะ "ทำให้ HTML เป็นปกติ" ใน Javascript ได้อย่างไรดังนั้นลำดับของแอตทริบิวต์จึงเหมือนกันเสมอ ฉันไม่สนใจว่าจะเลือกคำสั่งไหนตราบใดที่ยังคงเหมือนเดิม
UPDATE : เป้าหมายเดิมของฉันคือทำให้หน้า HTML 2 หน้าแตกต่างกัน (ใน JavaScript) ได้ง่ายขึ้นโดยมีความแตกต่างเล็กน้อย เนื่องจากผู้ใช้สามารถใช้ซอฟต์แวร์อื่นเพื่อแก้ไขโค้ดลำดับของแอตทริบิวต์จึงอาจเปลี่ยนแปลงได้ สิ่งนี้ทำให้ความแตกต่างมากเกินไป
คำตอบ : ก่อนอื่นขอขอบคุณสำหรับคำตอบทั้งหมด และใช่มันเป็นไปได้ นี่คือวิธีที่ฉันจัดการได้ นี่เป็นข้อพิสูจน์ของแนวคิดซึ่งสามารถปรับให้เหมาะสมได้อย่างแน่นอน:
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);
}
}
});
สิ่งเดียวกันสำหรับองค์ประกอบที่สองของความแตกต่าง, $('#different')
. ตอนนี้$('#original').html()
และ$('#different').html()
แสดงโค้ด HTML ที่มีแอตทริบิวต์ในลำดับเดียวกัน