Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.09.2014, 10:19
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

3%$#@# ява-скрипт и конкретно про null
Как-то в последнее время не складывается у меня с JS, вот из последнего:

if(this.dataset.error!=null) {
			console.log(this.dataset.error);
			balloon(this);
		}


в лог идет со строки 144

Код:
"null" forms.js:144
Скорее всего я тупой. Но в чем? Проверку делал и по типу === эквипенисуально валится под условие и печатает null.

Теперь вот как инициализируется в цикле

elem.dataset.error=null;


typeof дает string. Ну пусть дает, но как тогда вообще проверять на null, или в чем именно тут косяк. Потому что оно в json валится в dataset?
Ответить с цитированием
  #2 (permalink)  
Старый 02.09.2014, 10:24
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Ладно, тогда другой вопрос: куда обычно втыкаются такого рода проперти, ну, которые в процессе возникают и надо их вместе с элементом таскать?
Ответить с цитированием
  #3 (permalink)  
Старый 02.09.2014, 10:26
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

dataset всегда возвращает строку. Делай не присвоение null, а delete this.dataset.error.
Ответить с цитированием
  #4 (permalink)  
Старый 02.09.2014, 10:29
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

dataset - это аттрибут, аттрибут в свою очередь может быть только строкой.
elem.dataset.error=null; - преобразует null к строке. elem.dataset.error содержит строку "null".

this.dataset.error != null приводит для сравнения к примитивным типам, где null -> false, а строка "null" -> true.
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 02.09.2014, 10:34
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Понятно, я тупой. А второй вопрос? Куда обычно складывают эти свои проперти?

То есть я могу законно залепить elem.error=null и не париться с атрибутами?
Ответить с цитированием
  #6 (permalink)  
Старый 02.09.2014, 10:41
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Нет, все равно юмора не понял. В js ничего ж вроде не типируется. Получается в dataset встроен какой-то сеттер который приводит все барахло в строку?
Ответить с цитированием
  #7 (permalink)  
Старый 02.09.2014, 10:45
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

kostyanet, можешь.
Но обычно складывают отдельно DOM, отдельно данные.

DataSet - просто надстройка над атрибутами для удобства. А атрибуты по спеке могут быть только строкой(что очевидно, т.к. атрибут это то, что мы видим в html)
__________________
29375, 35

Последний раз редактировалось Aetae, 02.09.2014 в 10:47.
Ответить с цитированием
  #8 (permalink)  
Старый 02.09.2014, 10:59
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Нет, если рассуждать программно, то атрибут - такие же данные, а чтобы он стал строкой на выводе стоит метод типа __toString(). Так ведь обычно в программировании делятся данные на данные и отображение данных.

Фиг с ним, с атрибутом. За ответы спасибо. Про дом тоже вспомнил, полгода не занимался - все забыл. То есть я собираю в массив не элементы дома, а свой массив объектов в одном из пропертей которого - элемент дома и всякие другие связанные с этим элементом. Блин, самое смешное что так у меня и сделана клиентская часть datagrid. Вот что значит полгода не видеть кодов.
Ответить с цитированием
  #9 (permalink)  
Старый 02.09.2014, 11:00
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

А если в домный элемент пихать, кстати, все работает, халява.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не отображается ява скрипт в других браузерах. Окромя Мозиллы. swatello Элементы интерфейса 5 17.03.2011 16:24
ява скрипт Люди подскажите Плиз ArtMain Работа 4 19.01.2011 06:54
Небольшой скрипт про цены на хлеб - не работает! Почему? Каупервудик Ваши сайты и скрипты 12 29.09.2010 00:08
Подскажите как селать в отдельном файле ява скрипт с вызовом со страницы... alexmetalin Ваши сайты и скрипты 6 22.10.2009 15:21
не могу запустить ни оди ява скрипт NickTriada Javascript под браузер 7 17.08.2009 13:25