繁体   English   中英

JavaScript:JSON 属性到 html 内容使用.forEach

[英]JavaScript: JSON properties to html content using .forEach

我的JSON数据变量是this.responseText

{
  'nav': '<a href="">a</a><a href="">b</a>',
  'content': '<div>tartalom</div>',
  'akarmi': 'hello'
}

我想使用.foreach循环而不是:

document.getElementById("nav").innerHTML = '<a href="">a</a><a href="">b</a>';
document.getElementById("content").innerHTML = '<div>tartalom</div>';
document.getElementById("akarmi").innerHTML = 'hello';

您可以使用Object.entries如下:

 const res = { 'nav': '<a href="">a</a><a href="">b</a>', 'content': '<div>tartalom</div>', 'akarmi': 'hello' }; Object.entries(res).forEach(([elemId,htmlContent]) => { const elem = document.getElementById(elemId); if(elem) elem.innerHTML = htmlContent; });
 <div id="nav"></div> <div id="content"></div> <div id="akarmi"></div>

它的作品:谢谢。 JSON.parse()

Object.entries(JSON.parse(this.responseText)).forEach(([elemId,htmlContent]) => {

索引.html

<html>
<head>
<script src="script.js"></script>
</head>
<body onload="javascript:ajax();">
<div id="nav"></div>
<div id="content"></div>
<div id="akarmi"></div>
</body>
</html>

脚本.js

function ajax () {

    var xhttp = new XMLHttpRequest();

    xhttp.onreadystatechange = function() {

        if(this.readyState == 4 && this.status == 200) {

            Object.entries(this.responseText).forEach(([elemId,htmlContent]) => {
                const elem = document.getElementById(elemId);
                if(elem) elem.innerHTML = htmlContent;
            });

        }

    };

    xhttp.open ("GET", "foo.php", true);
    xhttp.send ();

}

foo.php

{
  'nav': '<a href="">a</a><a href="">b</a>',
  'content': '<div>tartalom</div>',
  'akarmi': 'hello'
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM