Сообщение от Артем125
|
свойство(или атрибут, пока разницы не понимаю)
|
Это разные вещи. возможно, это поможет Вам в прояснении ситуации. (Хотя, мои разъяснения обычно ясностью-то и не отличаются
).
Представьте, есть
элемент разметки, обособленная часть текста
<body class="index" myAttribute="foo"></body>
C точки зрения
разметки это элемент, вещь в себе, которая позволяет бразуеру обращаться с ней как с чем-то законченным и конкретным. И чисто формально у этого элемента есть два аттрибута, class и myAttribute, которые на что-то так когда-то влияют или не влияют.
А теперь нам нужно получить этот элемент в javascript. Для его представления мы используем объект типа Element. Он предоставляет возможности доступа и редактирования аттрибутов
элемента, но сам им не является. Хоть он и связан с элементом HTML, он — объект среды javascript. И «ничто объектное ему не чуждо», у него могут быть свойства.
Было бы безумно удобно, если бы поддерживалась автоматически, браузером, связь «свойство объекта — аттрибут элемента». И, более того, это так и есть, но только для тех аттрибутов, которые известны браузеру.
То есть, задав объекту свойство title, мы можем ожидать, что у элемента появится (изменится) аттрибут title. А, вот, аттрибут myAttribute вря-яд ли сгенерирует свойство myElement. И наоборот, задавая объекту свойство myProperty, мы не вправе ждать, что у элемента непременно появится такой параметр.
Обратите на это внимание и не забывайте.
Кстати, о не-тождественности «аттрибут элемента разметки — свойство объекта javascript» может еще говорить то, что аттрибут class представляется в виде свойства .className.
__________
«элемент типа Element» не следует понимать буквально, в js нет классов как таковых.
Но, так или иначе, прототип от функции-конструктора Element есть в цепи прототипов объекта. Везде, кроме IE6. Но это уже совсем другая история.