Показать сообщение отдельно
  #6 (permalink)  
Старый 10.01.2016, 15:10
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Keramet, только валидные атрибуты могут быть доступны как свойства, но у них тоже есть некоторые особенности, например: атрибут класс не будет доступен как свойство "class", так как это зарезервированное имя, поэтому необходимо указывать className, или такие свойства как disabled, checked и т.д. всегда будут возвращать булево значение, независимо от значения атрибута.

У дивов name не бывает, поэтому и не работает, так как это не валидно. Лучше использовать data-* атрибуты:

<div id="myDiv" data-name="foo"></div>

myDiv.dataset.name; //foo


Ну или написать свой геттер/сеттер:

Object.defineProperty(HTMLDivElement.prototype, 'name', {
   get: function() {
      return this.getAttribute('name') || '';
   },
   set: function(value) {
      this.setAttribute('name', value);
   }
});


<div id="myDiv" name="foo"></div>

myDiv.name; //foo
Ответить с цитированием