16.08.2017, 17:30
|
Профессор
|
|
Регистрация: 27.06.2016
Сообщений: 180
|
|
если пустое innerHTML
Если попробовать назначить переменную вот так:
var a = document.getElementById('id тега').innerHTML;
а содержимое тега отсутствует, то вылезает ошибка, что нельзя прочитать свойство 'null'.
Есть идеи, как назначить переменную, если innerHTML отсутствует?
|
|
16.08.2017, 17:33
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,791
|
|
var a=document.getElementById('id тега');
a=!!a.innerHTML?a.innerHTML:'';
А можно узнать какому тегу ты присваиваешь этот идентификатор?
|
|
16.08.2017, 17:40
|
Профессор
|
|
Регистрация: 27.06.2016
Сообщений: 180
|
|
Сообщение от Nexus
|
var a=document.getElementById('id тега');
a=!!a.innerHTML?a.innerHTML:'';
А можно узнать какому тегу ты присваиваешь этот идентификатор?
|
Nexus, 'id тега' это просто обозначение, его я не присваиваю.
Хочу помучить, что означает !! после равенства ? Правильно ли я понял, что если у a нету InnetHTML, то присваивается '', и что это такое?
|
|
16.08.2017, 17:55
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,112
|
|
Сообщение от atanov
|
Есть идеи, как назначить переменную, если innerHTML отсутствует?
|
отсутвует элемент а не innerHTML
|
|
16.08.2017, 17:59
|
Профессор
|
|
Регистрация: 27.06.2016
Сообщений: 180
|
|
рони, нет, как раз элемент есть, нет содержимого, в моём случае в ячейке таблицы между тегами
<td></td>
|
|
16.08.2017, 18:07
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,112
|
|
Сообщение от atanov
|
как раз элемент есть,
|
это вы так решили, а на самом деле нет этой ячейки
|
|
16.08.2017, 18:10
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,112
|
|
atanov,
возможные причины:
1. скрипт запущен ранее чем сформирован DOM.
2. ошибка в id.
|
|
17.08.2017, 11:17
|
Профессор
|
|
Регистрация: 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.
|
|
17.08.2017, 12:06
|
Профессор
|
|
Регистрация: 27.06.2016
Сообщений: 180
|
|
Сообщение от Nexus
|
Свойства «innerHTML» может не быть, если элемент не был найден, либо (не уверен, проверять лень) это input или подобный элемент.
Upd. Таки проверил, у input'ов это свойство имеется (https://jsfiddle.net/7ygwpfsb/).
|
Nexus,
это ячейка таблицы:
<td id = blablabla></td>
|
|
17.08.2017, 12:12
|
Профессор
|
|
Регистрация: 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>
|
|
|
|