Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/47: Рейтинг темы: голосов - 47, средняя оценка - 4.74
4 / 5 / 0
Регистрация: 17.11.2018
Сообщений: 23
1

Ошибка Uncaught TypeError: Cannot read property 'toggle' of undefined

02.03.2019, 11:54. Показов 9843. Ответов 3

Author24 — интернет-сервис помощи студентам
В js файле есть код:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
$( document ).ready(function() {
    var value = $("#s_theme").text();
    var obj = document.getElementsByClassName('settings');
    function main () {
    if (value != 'Ok') {
        obj.classList.add('theme_hide');
    }
    else {
        obj.classList.remove('theme_hide');
    }
    }
    var inter = setInterval(main,500);
});
Но в консоли ошибка:
script.js:6 Uncaught TypeError: Cannot read property 'add' of undefined
at main (script.js:6)

Можете указать, в чем ошибка?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2019, 11:54
Ответы с готовыми решениями:

Ошибка Uncaught TypeError: Cannot read property 'offsetX' of undefined
Не могу избавиться от ошибки Uncaught TypeError: Cannot read property 'offsetX' of undefined в...

Uncaught TypeError: Cannot read property 'value' of undefined
Не могу понять в чем проблема выдает ошибку Uncaught TypeError: Cannot read property 'value' of...

Uncaught TypeError: Cannot read property 'order' of undefined
orderBy: function(event, container, element){ var id = 'id-' + this.getID(container); ...

Uncaught TypeError: Cannot read property 'elements' of undefined
Только начал изучать и сразу тормоз... оШИБКА: Uncaught TypeError: Cannot read property 'elements'...

3
Эксперт JS
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
02.03.2019, 12:20 2
Лучший ответ Сообщение было отмечено ThePhoenix как решение

Решение

Надо
Javascript
1
var obj = document.getElementsByClassName('settings')[0];
или
Javascript
1
var obj = document.querySelector('.settings');
Добавлено через 16 минут
А вообще в jQuery надо хотя бы так написать:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
 
<body>
    <div id="s_theme">текст</div>
    <div class="settings"></div>
    <script>
        $(function () {
            function main() {
                var value = $("#s_theme").text();
                var obj = $('.settings');
                if (value != 'Ok') {
                    obj.addClass('theme_hide');
                }
                else {
                    obj.removeClass('theme_hide');
                }
            }
            var inter = setInterval(main, 500);
        });   
    </script>
</body>
</html>
Не надо делать лишние замыкания на переменные.
-----
Да и проверка значения по интервалу тоже говорит о нехорошем проектировании программы...
1
4 / 5 / 0
Регистрация: 17.11.2018
Сообщений: 23
02.03.2019, 12:29  [ТС] 3
Понял. Принял. Я еще только начал изучение этого
0
Эксперт JS
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
02.03.2019, 14:15 4
ThePhoenix, если есть опыт программирования в других языках и есть желание поиграться с наблюдением за изменением объекта,
то посмотрите MutationObserver за UI-элементом,

для POJO-классов - Object.observe(), класс Proxy и классическую реализацию Наблюдателя на геттерах/сеттерах.

Сейчас вообще мода играться с data binding. Так что да. Актуально. А там и до Vue.js c Реактом скатитесь...
0
02.03.2019, 14:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2019, 14:15
Помогаю со студенческими работами здесь

Uncaught TypeError: Cannot read property 'createRange' of undefined
Вроде б все просто, но не работает function AddTags(Tag,Tag2) { document.forma.content.focus();...

Метод split - выдается ошибка Uncaught TypeError: Cannot read property 'split' of undefined
Вот кусок кода CheckLinkText: function(val, f){ if(!$('#attach_lnk_stared').val()){...

Как справиться с ошибкой в js : Uncaught TypeError: Cannot read property 'style' of undefined
Не понимаю как правильно описать действия со сменой значения display : &lt;script...

Ошибка при изменении стилей: Uncaught TypeError: Cannot read property 'style' of null
как поменять фоновый цвет у блока? я делаю вот так:...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru