Добрый день! Имею вот такой скрипт Код (Text): <script> function callbackFunction(data) { const paramsContainer = document.querySelector('.map__params'); paramsContainer.innerHTML = ''; for (const key in data) { const param = document.createElement('div'); const paramValue = document.createElement('span'); param.className = 'map__params-item'; param.textContent = `${key}: `; paramValue.textContent = typeof data[key] === 'object' ? JSON.stringify(data[key]) : data[key]; param.appendChild(paramValue); paramsContainer.appendChild(param); } } document.getElementById('paramValue').innerHTML = data[indexTo]; </script> <div id="param"><span id="paramValue"></span></div> Скрипт должен выдавать ответ в следующем виде Код (Text): { "addressTo": "ул Советская", "areaTo": null, "boxSize": "m", "cashOfDelivery": 26400, "cityTo": "г Ростов-на-Дону", "deliveryDescription": { "description": "от 1 до 2 дней + обработка заказа 10 часов", "values": { "deliveryMax": 2, "deliveryMin": 1, "extraTimeInHours": 10 } }, "indexTo": "344019", "mailType": "POSTAL_PARCEL", "pvzType": "russian_post", "id": 44342, "regionTo": "обл Ростовская", "sumoc": "150000", "weight": "1000" } При помощи document.getElementById('paramValue').innerHTML = data[indexTo]; пытаюсь вывести значение indexTo в div/span. Но ничего не выводится, подскажите как решить задачу?
а лог в консоли посмотреть не судьба? скорее всего там ругается на ваш data[indexTo] ...ибо надо data.indexTo
Так тоже пробовал... Ругается на Uncaught ReferenceError: data is not defined в строке document.getElementById('paramValue').innerHTML = data.indexTo; --- Добавлено --- Также ругается на Cannot set properties of null (setting 'innerHTML') at Object.callbackFunction в строке paramsContainer.innerHTML = '';
Со скобками все норм, откуда они этот map__params взяли не пойму... не в widget.js ни в других подключаемых файлах его не нашел... Посмотрите пожалуйста инструкцию по виджету https://widget.pochta.ru/docs я думаю маловероятно что они не рабочее решение разместят... --- Добавлено --- Вставил <div class="map__params"></div> и все заработало! Всем спасибо!
ну в ошибке ж ясно сказано - нет data а вот почему нет Код (Javascript): <script> function callbackFunction(data) { ........ } document.getElementById('paramValue').innerHTML = data[indexTo]; </script> правильно вам про скобочки сказали... ВНУТРИ функции должны работать с данными ... строку document.getElementById('paramValue').innerHTML = data... внутрь функции переместите ну и посмотрите все же что там у вас в data перед тем как пытаться что-то выводить оттуда Код (Javascript): console.log(data);