Атрибуты и свойства
Здравствуйте!
Почитал про атрибуты и свойства и не могу ни как уловить разницу. Читал 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, время: 01:45. |