Py学习  »  Jquery

如何在JavaScript或jQuery中规范HTML?

Julien • 6 年前 • 2254 次点击  

标记可以有多个属性。属性在代码中出现的顺序无关紧要。例如:

<a href="#" title="#">
<a title="#" href="#">

如何在Javascript中“规范化”HTML,使属性的顺序始终相同?我不在乎选择哪种顺序,只要它总是一样的。

:我最初的目标是更容易区分(在JavaScript中)2个略有不同的HTML页面。因为用户可以使用不同的软件来编辑代码,所以属性的顺序可能会改变。这使得diff过于冗长。

回答 :好吧,首先谢谢你的回答。是的,这是可能的。我就是这样做到的。这是一个概念的证明,当然可以优化:

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代码。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/57275
文章 [ 8 ]  |  最新文章 6 年前