Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.08.2017, 18:30
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

если пустое innerHTML
Если попробовать назначить переменную вот так:

var a = document.getElementById('id тега').innerHTML;


а содержимое тега отсутствует, то вылезает ошибка, что нельзя прочитать свойство 'null'.
Есть идеи, как назначить переменную, если innerHTML отсутствует?
Ответить с цитированием
  #2 (permalink)  
Старый 16.08.2017, 18:33
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,703

var a=document.getElementById('id тега');
a=!!a.innerHTML?a.innerHTML:'';

А можно узнать какому тегу ты присваиваешь этот идентификатор?
Ответить с цитированием
  #3 (permalink)  
Старый 16.08.2017, 18:40
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

Сообщение от Nexus
var a=document.getElementById('id тега');
a=!!a.innerHTML?a.innerHTML:'';

А можно узнать какому тегу ты присваиваешь этот идентификатор?
Nexus, 'id тега' это просто обозначение, его я не присваиваю.

Хочу помучить, что означает !! после равенства ? Правильно ли я понял, что если у a нету InnetHTML, то присваивается '', и что это такое?
Ответить с цитированием
  #4 (permalink)  
Старый 16.08.2017, 18:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,059

Сообщение от atanov
Есть идеи, как назначить переменную, если innerHTML отсутствует?
отсутвует элемент а не innerHTML
Ответить с цитированием
  #5 (permalink)  
Старый 16.08.2017, 18:59
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

Сообщение от рони
рони
рони, нет, как раз элемент есть, нет содержимого, в моём случае в ячейке таблицы между тегами
<td></td>
Ответить с цитированием
  #6 (permalink)  
Старый 16.08.2017, 19:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,059

Сообщение от atanov
как раз элемент есть,
это вы так решили, а на самом деле нет этой ячейки
Ответить с цитированием
  #7 (permalink)  
Старый 16.08.2017, 19:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,059

atanov,
возможные причины:
1. скрипт запущен ранее чем сформирован DOM.
2. ошибка в id.
Ответить с цитированием
  #8 (permalink)  
Старый 16.08.2017, 19:49
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,661

Сообщение от atanov
то вылезает ошибка, что нельзя прочитать свойство 'null'
ты просто криво перевел, у null нельзя прочитать свойство innerHTML, грамматику то надо знать, транслейтеры не помогут же.

Последний раз редактировалось Rise, 16.08.2017 в 19:52.
Ответить с цитированием
  #9 (permalink)  
Старый 17.08.2017, 12:17
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,703

Сообщение от atanov Посмотреть сообщение
Nexus, 'id тега' это просто обозначение, его я не присваиваю.

Хочу помучить, что означает !! после равенства ? Правильно ли я понял, что если у a нету InnetHTML, то присваивается '', и что это такое?
В общем-то твою проблему тебе уже объяснили.
В своем коде я в переменную «а» пытался "сохранить" элемент с указанным ID.
Во второй строке я проверяю есть ли у полученного элемента это свойство, если оно есть, то в переменную «а» записывается значение этого свойства, в противном случае записывается строка длинною в 0 символов.
Свойства «innerHTML» может не быть, если элемент не был найден, либо (не уверен, проверять лень) это input или подобный элемент.

Upd. Таки проверил, у input'ов это свойство имеется (https://jsfiddle.net/7ygwpfsb/).

Последний раз редактировалось Nexus, 17.08.2017 в 12:27.
Ответить с цитированием
  #10 (permalink)  
Старый 17.08.2017, 13:06
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

Сообщение от Nexus
Свойства «innerHTML» может не быть, если элемент не был найден, либо (не уверен, проверять лень) это input или подобный элемент.

Upd. Таки проверил, у input'ов это свойство имеется (https://jsfiddle.net/7ygwpfsb/).
Nexus,

это ячейка таблицы:

<td id = blablabla></td>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставить innerHTML в див с именем rodiony4 Элементы интерфейса 2 02.01.2016 03:51
onclick только если onchange qwe88 Общие вопросы Javascript 9 18.04.2015 22:15
IE через innerHTML не видит методов флэшки (которые EnternalInterface) sociofilm Internet Explorer 1 04.04.2012 12:54
остановить скрипт если мышка не двигалась 2 минуты на этом сайте TavRox jQuery 4 17.01.2011 15:00
iframe | закрыть если... Geek Events/DOM/Window 5 30.09.2008 16:23