Свойство DOM HTMLElement className, когда элементу не задано имя класса - PullRequest
3 голосов
/ 14 декабря 2010

Когда у вас есть элемент HTML без установленного имени класса, каково значение свойства HTMLElement className? Сначала я подумал, что он не определен, но я обнаружил, что в FF это просто пустая строка. Мой вопрос - могу ли я полагаться на это поведение во всех текущих и будущих браузерах? Это часть какой-то спецификации или это еще одна хитрость браузера, чтобы избежать ошибок в плохо написанном коде?

Ответы [ 2 ]

4 голосов
/ 14 декабря 2010
interface HTMLElement : Element {
           attribute  DOMString            id;
           attribute  DOMString            title;
           attribute  DOMString            lang;
           attribute  DOMString            dir;
           attribute  DOMString            className;
};

- http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html.html

А также см. Определение DOMString .

Так что это должно быть безопасно.

4 голосов
/ 14 декабря 2010

По умолчанию это всегда будет пустая строка ( a DOMString, в частности, ), и да, вы можете полагаться на то, что она не null / undefined.

Где это действительно важно, так это getAttribute() определение :

Возвращаемое значение DOMString
Значение Attr в виде строки или пустая строка, если для этого атрибута не указано значение или значение по умолчанию.

... на самом деле это просто атрибут, который вы извлекаете, поэтому в обоих случаях это одинаковое поведение, интерфейс просто определяет эти атрибуты.

...