Вывод результата функции в div
Добрый день!
Имею вот такой код
<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>
Код должен выдавать ответ в следующем виде Код:
{Но ничего не выводится, подскажите как решить задачу? |
Попробуйте расположить ваш скрипт ниже дива по коду
|
А где элемент с классом map__params?
И что такое indexTo? Где вызов функции callbackFunction? Что такое data в document.getElementById('paramValue').innerHTML = data[indexTo]; Вы в консоль то заглядываете? Просто что бы посмотреть ошибки. |
Цитата:
|
И кстати
typeof null === 'object' |
Цитата:
Код:
<div id="forpvzrp" style="display: none;">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 = ''; |
Цитата:
data у вас определена как параметр функции. А вне функции никакой data нет. const paramsContainer = document.querySelector('.map__params'); Если нет элемента с классом map__params, то paramsContainer будет null. ЗЫ Так data.indexTo или data[indexTo] ? |
в первом сообщении написал:
функция должна возвращать вот такой ответ, indexTo в нем
{
"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"
}
В самом скрипте ошибки точно не должно быть, так как это готовое решение с сайта почты россии, я же пытаюсь вывести из ответа этой функции значение в поле div. Все что я самостоятельно подписал в скрипте это:
document.getElementById('paramValue').innerHTML = data[indexTo];
|
Виджет установленный на сайте должен передавать в эту callback функцию ответ, который я прикрепил выше.. А я из этого ответа должен как то взять значения... Сам виджет работает, пункт выдачи выбирается.. Ошибок нет..
|
Цитата:
Но все равно, если нет элемента с классом map__params, то paramsContainer будет null! И data вне функции должна быть как то определена! |
| Часовой пояс GMT +3, время: 22:12. |