Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   свойства VS аттрибуты, что первостепенне для браузера? (https://javascript.ru/forum/events/41240-svojjstva-vs-attributy-chto-pervostepenne-dlya-brauzera.html)

dimka_68 05.09.2013 12:56

свойства VS аттрибуты, что первостепенне для браузера?
 
Здравствуйте, люди добрые. Как ни искал по интернету, так и не нашёл ответа на вопрос. Вопрос касается свойств и аттрибутов DOM-элемента.
Мне всегда казалось, что для браузера первостепенную роль играют аттрибуты при отрисовке элемента, а при изменениях, производимых мышью или клавиатурой, он так же записывает изменения в аттрибуты. Но в данном случае оказалось немного не так, как я считал.
Есть элемент <INPUT id='elem' type='checkbox'>
После изменении его состояния на checked, попытка прочитать его аттрибут checked такими способами, как
document.getElementById('elem').getAttribute('checked')

выдаёт значение undefined
А свойство же элемента, то есть
document.getElementById('elem').checked

свойство или аттрибут первостепеннее для браузера? С чем правильнее работать? Или в зависимости от элемента по-разному?

ksa 05.09.2013 13:13

Цитата:

Сообщение от dimka_68
С чем правильнее работать?

Если пишешь контент (теги) - у тебя только атрибуты.
Если пишешь программку - удобнее работать со свойствами напрямую.

danik.js 05.09.2013 15:03

Цитата:

Сообщение от dimka_68
свойство или аттрибут первостепеннее для браузера? С чем правильнее работать? Или в зависимости от элемента по-разному?

Со свойствами лучше конечно работать. И нужно понимать что свойства и атрибуты не симметричны. Тот же атрибут checked попадает в свойство defaultChecked, и задает начальное значение для свойства checked.
Вообще, атрибуты - это способ задавать значения свойств через xml/html-разметку


Часовой пояс GMT +3, время: 17:05.