javascript - 使用AJAX抓取JSON数据,然后通过ElementID在HTML上输出数据

标签 javascript html json ajax getelementbyid

我目前刚开始使用 AJAX 和 JSON,并且我被困在一些对你来说可能很简单的事情上。

我将使用 AJAX 从 JSON 获取数据,然后从那里我需要将数据输入到 HTML 页面上的指定 ElementID 中。

数据是段落,我被困在 Javascript 部分,我要从 JSON 获取数据,然后将其保存到 HTML 文档上的 ElementID。

JSON

{

    "Paragraphs": [

        {
            "Paragraph1": "Hi! I am Person."
        },

        {
            "Paragraph2": "My name is Person and I am a web designer from a Place."
        }

    ]
}

JS

(function () {


    "use strict";
    // Instantiate new xhr object
    var dataFile = "scripts/app.json";
    var request = new XMLHttpRequest();
    request.open('GET', dataFile, true);
    request.addEventListener('readystatechange', function () {
        // wait for file to finish loading
        if (request.readyState === 4) {
            var paragraph = {};

            // read in the json object
            paragraph = JSON.parse(request.responseText);


            // declare local paragraph array container
            var paragraphArray = [];

            // read in the paragraphs array from the json object
            paragraphArray = paragraph.Paragraphs;

            //store
            var paragraphArrayLength = paragraphArray.length;
            //loop
            for (var number = 0; number < paragraphArrayLength; number++) {
                var paragraph = document.getElementById('Paragraph1' + 'Paragraph2' + (number + 1));
                Paragraphs.Paragraph1.innerHTML = paragraphArray[number];
                paragraphs.Paragraph2.innerHTML = paragraphArray[number];
            }
        }
    });
    request.send();

})();

HTML

<div class="container">
    <div class="jumbotron">
        <div class="text-center">
            <h1 id="Paragraph1"></h1>
            <img src="images/portfolio.jpg" class="img-circle" alt="Cinque Terre" width="150" height="150">
            <p class="lead" id="Paragraph2"></p>
            </ul>
        </div>
    </div>
</div>

请帮忙!谢谢8)

最佳答案

这将使用 Paragraphs 数组中的对象中的键作为要填充值的元素的 ID。

for (var i = 0; i < paragraphArrayLength; i++) {
    for (var id in paragraphArray[i]) {
        document.getElementById(id).innerHTML = paragraphArray[i][id];
    }
}

嵌套循环是必要的,因为数组元素是对象,并且每个对象中的属性名称都不同。我建议更改 JSON 结构,使其更加统一,例如

{

    "Paragraphs": [

        {
            "id": "Paragraph1",
            "value": "Hi! I am Person."
        },

        {
            "id": "Paragraph2",
            "value": "My name is Person and I am a web designer from a Place."
        }

    ]
}

或者使 Paragraphs 成为一个对象而不是数组,其中 ID 是该对象的键。

关于javascript - 使用AJAX抓取JSON数据,然后通过ElementID在HTML上输出数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36229240/

相关文章:

java - 使用 CDL : possible to replace comma-sep. 通过 Java 将 JSon 转换为 CSV,由半列 sep。值(value)观?

javascript - 谷歌云存储 Javascript 使用

javascript - 如何在连接可用时离线启动应用程序并同步

javascript - CSS HTML 最后一个 child 不工作?

javascript - 单击按钮/链接后更改 ng-include 中的内容

html - ul.menu 颜色不变

java - 将Java数据转换为json

javascript - 在 HTML 中制作一个向下滑动的文本区域

javascript - 自定义图像复选框

javascript - 当选择检查时,它必须在 div 标签中显示表单。 div 必须暂时禁用