JaxAdam
@JaxAdam
Студент, обучаюсь верстке, стажируясь

Cannot read property 'b' of undefined. Как решить проблему с обьектом?

Возникла сложность с нахождением элемента объекта.

function recalc(){
                    var a = kitClass.options[kitClass.selectedIndex].value;
                    var b = kitMat.options[kitMat.selectedIndex].value;
                    var c = kitStyle.options[kitStyle.selectedIndex].value;
                	resultKitchen.innerHTML = tableFur.a.b.c*kitLength2.value + ' тг.';
                }


tableFur - объект внутри которого записаны числа.
Для получения окончательного числа нужно задать значения трем селектам.
kitClass, kitMat, kitStyle - селекты, внутри них option'ы с атрибутом value.

var kitLength = document.getElementById("kit-length");
                var kitLength2 = document.getElementById("kit-length2");
                var resultKitchen = document.getElementById("result-kitchen");
                var kitClass = document.getElementById("kitchen-class");
                var kitMat = document.getElementById("kitchen-material");
                var kitStyle = document.getElementById("kitchen-style");
                let	tableFur = {
                    "econom": {
                        "ldspMat": {"modern": 39000, "classic": 39000},
                        "ldspGlyan": {"modern": 49000, "classic": 49000},
                        "MdfPlenSup": {"modern": 79000, "classic": 89000},
                        "MdfPlenMat": {"modern": 59000, "classic": 69000},
                        "MdfPlenTextMat": {"modern": 59000, "classic": 69000},
                        "MdfPlenGlyan": {"modern": 69000, "classic": 79000},
                        "MdfPlenMetalik": {"modern": 69000, "classic": 79000}
                    },
                    "bazovaya": {
                        "ldspMat": {"modern": 49000, "classic": 49000},
                        "ldspGlyan": {"modern": 59000, "classic": 59000},
                        "MdfPlenSup": {"modern": 89000, "classic": 99000},
                        "MdfPlenMat": {"modern": 69000, "classic": 79000},
                        "MdfPlenTextMat": {"modern": 69000, "classic": 79000},
                        "MdfPlenGlyan": {"modern": 79000, "classic": 89000},
                        "MdfPlenMetalik": {"modern": 79000, "classic": 89000}
                    },
                    "obemnaya": {
                        "ldspMat": {"modern": 59000, "classic": 59000},
                        "ldspGlyan": {"modern": 69000, "classic": 69000},
                        "MdfPlenSup": {"modern": 99000, "classic": 109000},
                        "MdfPlenMat": {"modern": 79000, "classic": 89000},
                        "MdfPlenTextMat": {"modern": 79000, "classic": 89000},
                        "MdfPlenGlyan": {"modern": 89000, "classic": 99000},
                        "MdfPlenMetalik": {"modern": 89000, "classic": 99000}
                    },
                    "evro": {
                        "ldspMat": {"modern": 69000, "classic": 69000},
                        "ldspGlyan": {"modern": 79000, "classic": 79000},
                        "MdfPlenSup": {"modern": 109000, "classic": 119000},
                        "MdfPlenMat": {"modern": 89000, "classic": 99000},
                        "MdfPlenTextMat": {"modern": 89000, "classic": 99000},
                        "MdfPlenGlyan": {"modern": 99000, "classic": 109000},
                        "MdfPlenMetalik": {"modern": 99000, "classic": 109000}
                    },
                    "premium": {
                        "ldspMat": {"modern": 79000, "classic": 79000},
                        "ldspGlyan": {"modern": 89000, "classic": 89000},
                        "MdfPlenSup": {"modern": 119000, "classic": 129000},
                        "MdfPlenMat": {"modern": 99000, "classic": 109000},
                        "MdfPlenTextMat": {"modern": 99000, "classic": 109000},
                        "MdfPlenGlyan": {"modern": 109000, "classic": 119000},
                        "MdfPlenMetalik": {"modern": 109000, "classic": 119000}
                    },
                    "luxe": {
                        "ldspMat": {"modern": 89000, "classic": 89000},
                        "ldspGlyan": {"modern": 99000, "classic": 99000},
                        "MdfPlenSup": {"modern": 129000, "classic": 139000},
                        "MdfPlenMat": {"modern": 109000, "classic": 119000},
                        "MdfPlenTextMat": {"modern": 109000, "classic": 119000},
                        "MdfPlenGlyan": {"modern": 119000, "classic": 129000},
                        "MdfPlenMetalik": {"modern": 119000, "classic": 129000}
                    }
                };


Когда я в js задаю вот так:
alert(tableFur.econom.MdfPlenMat.classic);

все работает. А когда все связал с селектами перестало работать и выдает ошибку в консоли:
(index):445 Uncaught TypeError: Cannot read property 'b' of undefined
at recalc ((index):445)
at HTMLSelectElement. ((index):449)
at HTMLSelectElement.dispatch (jquery.js:2)
at HTMLSelectElement.y.handle (jquery.js:2)
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
0xD34F
@0xD34F
читайте, осознавайте свою ошибку
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы