Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
-13 / 1 / 1
Регистрация: 04.12.2015
Сообщений: 59

Не работает второе условие IF

10.05.2018, 01:57. Показов 1797. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не работает второе условие, но если убрать "parentNode.style.backgroundColor='yello w'" то все будет работать, в чем может быть проблема?

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
func(document, 0);
 
function func(parentNode, nLevel) {
    
    if (parentNode.textContent === 'Зачеркнутый')
    {  
    parentNode.style.backgroundColor='yellow'
    }
 
    if (parentNode.textContent === 'Текст +3') 
    {
        parentNode.nodeValue = ''
    }
 
    for (let i = 0; i < parentNode.childNodes.length; i++) 
    {
        func(parentNode.childNodes[i], nLevel + 1);
    }
    return;
}

Код на HTML


HTML5
1
2
<p>Варианты текста: <b>Жирный</b> <i>Курсив</i> <b><i>Жирный и наклонный</i></b> <u>Подчеркнутый</u> <s>Зачеркнутый</s>
<br><font size="+3">Текст +3</font>
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.05.2018, 01:57
Ответы с готовыми решениями:

Не работает второе условие в программе
Второе условие просто не считывается, при проверке пишет, что точка не принадлежит графику, хотя подставленные данные правильные using...

Почему не работает второе условие?
$arr2 = array(5 =&gt; 1,2,3); for($i = 0; $i &lt; 10; $i++){ if(isset($arr2)){ //echo &quot;Элемент &quot; . $arr2 . &quot;...

Второе условие в цикле почему-то не работает
Этот код работает как нужно мне: $surname = 'Вася'; do { $rows = mysql_query(&quot;SELECT * FROM `users` WHERE...

1
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
11.05.2018, 10:17
Лучший ответ Сообщение было отмечено Sandar как решение

Решение

Можно открыть консоль разработчика в браузере, и увидеть ошибку: невозможно установить свойство backgroundColor у undefined.

Обратимся к документации: childNodes - метод возвращает все дочерние узлы, включая текстовые узлы и комментарии.

Таким образом включив лог, того что нашли
JavaScript
1
2
3
4
  if (parentNode.textContent === 'Зачеркнутый') {
    console.log(parentNode.nodeType);
    parentNode.style.backgroundColor = 'yellow'
  }
можно обнаружить что в первом случае у нас nodeType = 1, что соответствует Node.ELEMENT_NODE, а следом находится элемент с nodeType = 3 - Node.TEXT_NODE, и у этого типа нет свойства style, что и останавливает выполнение скрипта.

Выход: проверять найденный элемент на тип:
JavaScript
1
2
3
4
5
  if (parentNode.textContent === 'Зачеркнутый') {
    if (parentNode.nodeType === Node.ELEMENT_NODE) {
        parentNode.style.backgroundColor = 'yellow'
    }
  }
либо воспользоваться методом children, чтобы находить только элементы страницы
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
func(document, 0);
 
function func(parentNode, nLevel) {
  if (parentNode.textContent === 'Зачеркнутый') {
    parentNode.style.backgroundColor = 'yellow'
  }
 
  if (parentNode.textContent === 'Текст +3') {
    // parentNode.nodeValue = ''
    parentNode.textContent = '';
  }
 
  // for (let i = 0; i < parentNode.childNodes.length; i++) {
  //   func(parentNode.childNodes[i], nLevel + 1);
  for (let i = 0; i < parentNode.children.length; i++) {
    func(parentNode.children[i], nLevel + 1);
  }
 
  return;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.05.2018, 10:17
Помогаю со студенческими работами здесь

Не понимаю, почему второе условие не работает if (х = 1.2)
Program varik3; uses crt; var a, b, c, fi, x:real; begin a:= 2.8; b:= -9.3; c:= 4; x:= 1; while (x &lt;= 2) do...

Создал меню: первое условие работает, второе - нет
Первый кейс работает хорошо. 2й не выводит сообщение с результатом. Что я не так сделал? И сможете показать как выполнять дальше? Или хотя...

Не учитывается второе условие
Добра всем! Файл пример в приложении! Не считается второе условие функции ЕСЛИ. Помогите разобраться. ...

Почему второе условие не включается?
Приветствую, Написал простетскую программу на расчета числа, возводимого в степень. Однако по непонятной мне причине, если я ввожу 2,2,...

Что не так в коде? Не выполняется второе условие
var gl:= 'кпстфхцчшщ';* zv:= 'бвгджзлмнр';* zi: array of integer; * s: string;* i,n:integer;* chet:boolean; begin ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru