Сообщение от TicTac
|
если создать атрибут появится свойство...
|
не появится (кроме IE)
var node = document.createElement("div");
node.setAttribute("test", "O_o");
alert("test" in node);
Сообщение от TicTac
|
А если добавить свойство - атрибут естественно не появится
|
да
var node = document.createElement("div");
node.test = 1;
alert(node.hasAttribute("test"));
Повторюсь: если браузеру известно какое-то свойство или атрибут, то при изменении и добавлении, значения возможно синхронизируются:
var node = document.createElement("div");
node.setAttribute("id", "_123");
alert(node.id);
var node = document.createElement("div");
node.id = "_123";
alert(node.getAttribute("id"));
Еще полезно помнить, что node.cloneNode копирует только атрибуты:
var node = document.createElement("div");
node.test = "O_o";
var clone = node.cloneNode(true);
alert(clone.test);
var node = document.createElement("div");
node.setAttribute("test", "O_o");
var clone = node.cloneNode(true);
alert(clone.getAttribute("test"));
Ну и ключевое отличие: атрибут всегда имеет строковое значение, свойство может принимать любое значение.
var node = document.createElement("input");
node.type = "checkbox";
node.setAttribute("checked", "checked");
alert(node.checked);