Javascript.RU

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

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

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


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

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

А можно узнать какому тегу ты присваиваешь этот идентификатор?
Ответить с цитированием
  #3 (permalink)  
Старый 16.08.2017, 17: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, 17:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

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

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

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

atanov,
возможные причины:
1. скрипт запущен ранее чем сформирован DOM.
2. ошибка в id.
Ответить с цитированием
  #8 (permalink)  
Старый 17.08.2017, 11:17
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

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

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

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

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

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

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

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

<td id = blablabla></td>
Ответить с цитированием
  #10 (permalink)  
Старый 17.08.2017, 12:12
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

atanov,
Сообщение от рони
atanov,
возможные причины:
1. скрипт запущен ранее чем сформирован DOM.
2. ошибка в id.
<html>
<head>
<title>Untitled</title>
</head>
<body>
<script type="text/javascript">
var a=document.getElementById('some_id');
alert(a!==null?'Элемент найден':'Элемента нет')
</script>
<table>
<tr>
<td id="some_id">asd</td>
</tr>
</table>
</body>
</html>


<html>
<head>
<title>Untitled</title>
</head>
<body>
<table>
<tr>
<td id="some_id">asd</td>
</tr>
</table>
<script type="text/javascript">
var a=document.getElementById('some_id');
alert(a!==null?'Элемент найден':'Элемента нет')
</script>
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставить innerHTML в див с именем rodiony4 Элементы интерфейса 2 02.01.2016 03:51
onclick только если onchange qwe88 Общие вопросы Javascript 9 18.04.2015 21: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