Etiketlerin birden çok özelliği olabilir. Özniteliklerin kodda görünme sırası önemli değildir. Örneğin:
<a href="#" title="#">
<a title="#" href="#">
HTML'yi Javascript'te nasıl "normalleştirebilirim", böylece özniteliklerin sırası her zaman aynı olur? Her zaman aynı olduğu sürece hangi sıranın seçildiği umrumda değil.
GÜNCELLEME : Asıl hedefim, küçük farklılıklar içeren (JavaScript'te) 2 HTML sayfasını ayırt etmeyi kolaylaştırmaktı. Kullanıcılar kodu düzenlemek için farklı yazılımlar kullanabileceğinden, özniteliklerin sırası değişebilir. Bu, farklılığı çok ayrıntılı hale getirir.
CEVAP : Öncelikle tüm cevaplar için teşekkürler. Ve EVET, mümkündür. İşte bunu nasıl başardığım. Bu bir kavram kanıtıdır, kesinlikle optimize edilebilir:
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);
}
}
});
Farkın ikinci öğesi için de aynı şey $('#different')
,. Şimdi $('#original').html()
ve $('#different').html()
özniteliklere sahip HTML kodunu aynı sırayla gösterin.