Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Boolean у атрибутов (https://javascript.ru/forum/misc/49340-boolean-u-atributov.html)

Kenya-West 08.08.2014 12:09

Boolean у атрибутов
 
Когда атрибуту задаёшь булево значение, функция его никак словить не может.
Эта функция не пашет:
function a1 () {d = document.createElement('div');
d.setAttribute("mainQ", false);}
function a2 () {if (this.getAttribute("mainQ") == false) {WinJS.log('сработало')}}


А если вместо false написать 0, то работает:
function a1 () {d = document.createElement('div');
d.setAttribute("mainQ", "0");}
function a2 () {if (this.getAttribute("mainQ") == false) {WinJS.log('сработало')}}


Чем объяснить это дер'мо? Погрешностью boolean-значений?

devote 08.08.2014 12:12

Цитата:

Сообщение от Kenya-West
Чем объяснить это дер'мо? Погрешностью boolean-значений?

тем что атрибуты всегда имеют строковой тип, и все что в них помещается, переводится в строку... в реальности вызов .setAttribute("mainQ", false) задаст атрибут со значением mainQ="false"

Octane 08.08.2014 12:13

Потому что атрибут всегда (кроме старых IE) является строкой.
alert('false' == false)

рони 08.08.2014 12:13

Kenya-West,
курите доки
Цитата:

атрибуты:
Могут быть только строками.
http://learn.javascript.ru/attribute...трибуты

Kenya-West 08.08.2014 12:47

Спасибо всем! Покурю.


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