Автор Тема: javascript не видит потомков  (Прочитано 1821 раз)

21 Сентябрь, 2016, 11:14:43

Оффлайн WebCyber

  • Продвинутый юзер
  • ****
  • Сообщений: 306
  • Репутация: 1
  • OS: Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser: Chrome 52.0.2743.116 Chrome 52.0.2743.116
    • Просмотр профиля
Столкнулся с такой казалось бы ерундой.. в общем почему javascript не видит четвертые ячейки в рядах таблицы? Третьи видит а четвертые нет  ::) http://plnkr.co/edit/r6ZAqaiZO2dA3Uz2MVcb?p=preview

Форум вебмастеров - Webmasters.BY

javascript не видит потомков
« : 21 Сентябрь, 2016, 11:14:43 »

21 Сентябрь, 2016, 13:44:36
Ответ #1

Оффлайн Diver

  • Administrator
  • Гуру форума
  • *****
  • Сообщений: 4928
  • Репутация: 112
  • Шииикарно!
  • OS: Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser: Firefox 49.0 Firefox 49.0
    • Просмотр профиля
прежде чем обращаться к свойству объекта, неплохо проверить существует ли этот объект
if(table1_td4.firstChild && table1_td4.firstChild.nodeValue == "-")
ну и консоль браузера лучше держать открытой, чтобы сразу видеть JS-ошибки

21 Сентябрь, 2016, 14:18:42
Ответ #2

Оффлайн WebCyber

  • Продвинутый юзер
  • ****
  • Сообщений: 306
  • Репутация: 1
  • OS: Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser: Chrome 52.0.2743.116 Chrome 52.0.2743.116
    • Просмотр профиля
ну понятное дело существует) стоит же в html коде <td> и в нем контент "-", в предыдущей же ячейке js все нашел, а тут то в чем дело?

21 Сентябрь, 2016, 15:26:23
Ответ #3

Оффлайн WebCyber

  • Продвинутый юзер
  • ****
  • Сообщений: 306
  • Репутация: 1
  • OS: Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser: Chrome 52.0.2743.116 Chrome 52.0.2743.116
    • Просмотр профиля
я немного поспешил.. давайте разберем вот по этому макету.. в первой таблице все работает как надо, а во второй почему то не работает хотя использую тот же принцип что и в первом случае, почему так?? Как может не работать когда делаешь тоже самое?  http://plnkr.co/edit/5n4VCFlOsHVY1x3V1CKC?p=preview

22 Сентябрь, 2016, 14:28:48
Ответ #4

Оффлайн Diver

  • Administrator
  • Гуру форума
  • *****
  • Сообщений: 4928
  • Репутация: 112
  • Шииикарно!
  • OS: Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser: Firefox 49.0 Firefox 49.0
    • Просмотр профиля
и в первой таблице не будет работать как надо, если убрать из первой ячейки +
этот код работает до тем пор пока есть значения (FirstChild) в ячейках

23 Сентябрь, 2016, 19:01:16
Ответ #5

Оффлайн WebCyber

  • Продвинутый юзер
  • ****
  • Сообщений: 306
  • Репутация: 1
  • OS: Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser: Chrome 53.0.2785.101 Chrome 53.0.2785.101
    • Просмотр профиля
Не понимаю вообще тогда почему так.. у меня же прописано в переменной доступ ко всем ячейкам..
var table2_td3 = document.querySelectorAll("#table2 tr td:nth-child(2)");
значит цикл for должен по ним пройтись по всем, неважно пустые они или нет, или как это работает?

24 Сентябрь, 2016, 13:24:53
Ответ #6

Оффлайн Diver

  • Administrator
  • Гуру форума
  • *****
  • Сообщений: 4928
  • Репутация: 112
  • Шииикарно!
  • OS: Windows NT 10.0 Windows NT 10.0
  • Browser: Firefox 48.0 Firefox 48.0
    • Просмотр профиля
да цикл то проходит, только потом ошибка происходит, так как идет обращение к несуществующему свойству, и скрипт завершает работу