Атрибуты и свойства
Здравствуйте!
Почитал про атрибуты и свойства и не могу ни как уловить разницу. Читал http://javascript.ru/tutorial/dom/attributes и http://xpoint.ru/know-how/JavaScript/Atributyi?8 Не совсем понимаю вот что.. Что такое свойство, а что такое атрибут. 1.
inputTag.setAttribute("type", "abrakadabra"); // присваиваем атрибуту недопустимое значение
alert(inputTag.getAttribute("type")); // показывает: abrakadabra
alert(inputTag.type); // показывает: text
Это хорошо показывает разницу атрибута и свойства: атрибут может быть любой строкой, он лишь показывает, что написано в исходном коде документа. Свойства же отображают текущее состояние тега, они не могут содержать недопустимых значений. -Свойства же отображают текущее состояние тега свойство это type='submit' вся запись или только 'submit'? 2. Если взять такую запись type='submit' - это будет и свойством и атрибутом, только это как бы так: type='submit' -свойство type='submit' - атрибут но браузер пытается синхронизировать это дело и выходит type='submit' - это и свойство и атрибут, то есть если изменить одно изменится второе, только почему иногда бывают случаи когда свойство и атрибут имеют разные значения 3. Если рассмотреть такую запись myAtr='myValue' тогда это только атрибут, так как свойства четко не могут быть любой пользовательской строкой. Верно? такого свойства myAtr='myValue' нет? Я запутался( |
Забудь про это - это на самом деле не важно:) Используй все время свойства - в большинстве случаев это правильнее. А со временем все поймешь.
|
Браузер синхронизирует только те свойства с атрибутами, которые знает. Для выдуманных пользователем атрибутов тегов не создаются одноименные свойства DOM-объектов, поэтому совсем забыть о getAttribute не получиться.
|
Мне кажется я догнал! Что тут не понятного атрибуты тегов и муляж этих атрибутов - свойства полученные при полощи синхронизации браузера. Надеюсь правильно понял :)
Теперь меня долбит вопрос, если создать атрибут появится свойство... А если добавить свойство - атрибут естественно не появится.? Цитата:
Цитата:
Илья тоже описал в статье, что-то я протупил Цитата:
хм, я уже второй раз не могу поставить + в карму Sweet, пишет нужно добавить кому нить отзыв прежде чем снова добавить Sweet. Это баг? |
Цитата:
var node = document.createElement("div");
node.setAttribute("test", "O_o");
alert("test" in node);
Цитата:
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);
|
Цитата:
спс еще раз! очень полезно четко и понятно:) |
Я по Квери хочу спросить . Правильная ли такая запись $('*[class=class1]||[id=id2]'). чтоб реалиазовать 'Или Тот, Толи Этот ?' Как это должно быть написанно правильно ?..И какие еще есть похожие арифмерические штучки ?
|
Цитата:
|
Цитата:
Это то , для чего оно мне нужно http://www.youtube.com/watch?v=2y83ocW89ls |
Я не могу сообразить . как выделить сиблингс- элементы которые НЕ имеют какого нибудь атрибута по отношению к ГРУППЕ элементоав ,наделенной одним И ТЕМ ЖЕ классом. В моем случае .как я уже сказал-это класс // hasAttr -есть такое в документации , а наоборот как сделать по типу hasNotClass ? If ($(this). hasAttr('xxx')){$(this).siblings().remove()} чо-то не сработало.. Подскажите пожайлуста,как провернуть такую вещь.
|
| Часовой пояс GMT +3, время: 20:19. |