Javascript.RU

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

Как правильно показать условие
Вот такая задача - выводиться таблица, в которой в некоторых тегах есть текст. Этот текст берётся как обычно
var variable = [id тега].innerHTML;
, потом помещается во фрейм для работы с ним. Проходит это всё вполне нормально. Однако в некоторых тегах ничего нет, т.е. в разметке <td></td>. Ожидаемо ничего во фрейм не попадает и консоль выдаёт ошибку: Cannot read property 'innerHTML' of null. Пробовал поставить условие - при "пустоте", присвоить:
var variable = '0';
. Однако не помогло, также как и перебор вариантов в условии:
if (variable !== ' '||variable !== " "||variable !==''||variable !==""||variable !==null){var variable = '0';}
.

Есть мысли, что ещё попробовать для правильного задания искомого условия?
Ответить с цитированием
  #2 (permalink)  
Старый 24.04.2017, 12:56
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

atanov,
А можно примеры таблицы и скрипта - вместо
Сообщение от atanov
как обычно
var variable = [id тега].innerHTML;
Ответить с цитированием
  #3 (permalink)  
Старый 24.04.2017, 13:20
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

Весь код большой, выдёргиваю интересующие куски:

mysql_connect($host, $user, $password) or die("Cannot connect to  MySQL.");
mysql_select_db($database) or die("Cannot connect to the base.");
$sql = "SELECT * FROM `table-1` .`Number` ASC LIMIT 0, 10000 ";
$result = mysql_query($sql) or die(mysql_error());
while($row=mysql_fetch_assoc($result))
{
echo '<table class = table-ms>';
echo '<td class = tdnumber>'.$row['Number'].'</td>'; 
echo '<td class = tdQ>'.htmlspecialchars_decode($row['Ol']).'</td>';
echo '<td class = tdQ>'.htmlspecialchars_decode($row['Des']).'</td>';
echo '<td class = tdQ>'.htmlspecialchars_decode($row['QPA']).'</td>';
echo '<td class = tdQ>'.htmlspecialchars_decode($row['QBP']).'</td>';
echo '<td class = tdQ>'.htmlspecialchars_decode($row['QFP']).'</td>';
echo '<td class = tdQ>'.htmlspecialchars_decode($row['QBM']).'</td>';
echo '<td class = tdQ>'.htmlspecialchars_decode($row['QRU']).'</td>';
echo '<td class = tdQ>'.htmlspecialchars_decode($row['QFF']).'</td>';
echo '<td class = tdQ>'.htmlspecialchars_decode($row['CH']).'</td>';
echo '<td class = tdQ>'.htmlspecialchars_decode($row['SE']).'</td>';
echo '</table>';
}


var con = el.innerHTML;
if (con == ' '||con ==" "||con ==''||con ==""||con ==null){var con = '0';}else{}

Последний раз редактировалось atanov, 24.04.2017 в 13:23.
Ответить с цитированием
  #4 (permalink)  
Старый 24.04.2017, 13:28
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

atanov,
А что такое el в скрипте?

И еще - хорошо бы не php-код формирования таблицы, из которого еще неизвестно, что получится, а пример сформированной таблицы с клиента

Последний раз редактировалось Dilettante_Pro, 24.04.2017 в 13:33.
Ответить с цитированием
  #5 (permalink)  
Старый 24.04.2017, 14:16
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

Dilettante_Pro

el в скрипте присваивается так:

document.onclick = function mettrenom(e) {
e = e || window.event;
var el = e.target || e.srcElement;


т.е. el это элемент по которому кликнули.

А как сюда таблицу вставить с клиента? В общем-то она простая, но большая - почти 500 строк и 7 колонок.
Ответить с цитированием
  #6 (permalink)  
Старый 24.04.2017, 14:46
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

Вопрос решился не совсем ожидаемо - нужно было указать тождественно равно:
con ===''
Ответить с цитированием
  #7 (permalink)  
Старый 24.04.2017, 15:09
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

atanov,

Очень странно, что проблема решилась таким образом, учитывая тот факт, что ошибка Cannot read property 'innerHTML' of null относилась не к проверке полученного значения, а к операции получения значения
var con = el.innerHTML;

Есть подозрение, что это было связано с областью видимости переменной el

PS:
Строго равно (===)
Оператор возвращает true в том случае, если операнды строго равны (одного типа и равны). В отличие от оператора ==, данный оператор не приводит операнды к одному типу.

Последний раз редактировалось Dilettante_Pro, 24.04.2017 в 15:16.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно получить и присвоить данные полученные из сервера Axios, react-redux hambat Общие вопросы Javascript 5 07.03.2017 17:09
Пасоны, как правильно парсить параметры? megaupload Оффтопик 15 05.05.2013 14:44
Ползунок как на YouTube и условие. dailclever Элементы интерфейса 1 23.07.2012 19:51
Как правильно прицепить обработку события slowklg Events/DOM/Window 6 15.03.2012 16:20
Как правильно очистить maxlength в input? Маэстро Events/DOM/Window 10 22.06.2011 18:14