Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   если пустое innerHTML (https://javascript.ru/forum/css-html/70166-esli-pustoe-innerhtml.html)

atanov 16.08.2017 17:30

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

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


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

Nexus 16.08.2017 17:33

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

А можно узнать какому тегу ты присваиваешь этот идентификатор?

atanov 16.08.2017 17:40

Цитата:

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

А можно узнать какому тегу ты присваиваешь этот идентификатор?

Nexus, 'id тега' это просто обозначение, его я не присваиваю.

Хочу помучить, что означает !! после равенства ? Правильно ли я понял, что если у a нету InnetHTML, то присваивается '', и что это такое?

рони 16.08.2017 17:55

Цитата:

Сообщение от atanov
Есть идеи, как назначить переменную, если innerHTML отсутствует?

отсутвует элемент а не innerHTML

atanov 16.08.2017 17:59

Цитата:

Сообщение от рони
рони

рони, нет, как раз элемент есть, нет содержимого, в моём случае в ячейке таблицы между тегами
<td></td>

рони 16.08.2017 18:07

Цитата:

Сообщение от atanov
как раз элемент есть,

это вы так решили, а на самом деле нет этой ячейки

рони 16.08.2017 18:10

atanov,
возможные причины:
1. скрипт запущен ранее чем сформирован DOM.
2. ошибка в id.

Rise 16.08.2017 18:49

Цитата:

Сообщение от atanov
то вылезает ошибка, что нельзя прочитать свойство 'null'

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

Nexus 17.08.2017 11:17

Цитата:

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

Хочу помучить, что означает !! после равенства ? Правильно ли я понял, что если у a нету InnetHTML, то присваивается '', и что это такое?

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

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

atanov 17.08.2017 12:06

Цитата:

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

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

Nexus,

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

<td id = blablabla></td>


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