javascript - 如何将json数据动态插入到html元素中

标签 javascript jquery html json

{
      "top10": [
            {
                  "state": "red",
                  "claimed": true,
                  "branch": "release-2.3.4",
                  "job": "sdk",
                  "culprit": "Hansi Meier"
            },
            {
                  "state": "blue",
                  "claimed": true,
                  "branch": "master",
                  "job": "ibeo-cloud",
                  "culprit": "Karl Gustavo"
            },
            {
                  "state": "yellow",
                  "claimed": false,
                  "branch": "feature-abc",
                  "job": "appbase",
                  "culprit": "MAfred Auch"
            }
      ]
 }
<nav class="side-navbar">
        <div class="title">
          <h1>Top 10</h1>
        </div>

        <ul class="list-group">
          <a class="item d-flex align-items-center">
             
                <i class="fa fa-caret-up" style="font-size:48px;color:red"></i>
                <div class="item d-table-cell">
                 <i id='topbranch'></i>
                 <i id='topjob'></i>
                 <i id='topculprit'></i>
                </div>
                 <i class="fa fa-refresh" style="font-size:30px;color:yellow"></i>
                
            </a>
        
        </ul>
</nav>

enter image description here

我想将 json 数据插入到 html 元素中 例如top10[0].branch应该进入html id topbranch。 它应该循环。请看图片它应该如何出现。 请告诉我如何在 javascript 中执行此操作。如果您提供 jsfiddle 链接,那就太好了

最佳答案

您需要将 topbranch、topjob 和 topculprit 的所有 id 更改为 class,因为您将通过循环创建多个元素。 id 对于 HTML 文档中的任何元素都应该是唯一的。

希望下面的示例对您有用。你可以在JS代码中找到注释。您需要编写自己的 CSS 来根据屏幕截图显示项目。我在 ul 元素下添加了 li 元素。

var data = {
	"top10": [
		{
			"state": "red",
			"claimed": true,
			"branch": "release-2.3.4",
			"job": "sdk",
			"culprit": "Hansi Meier"
		},
		{
			"state": "blue",
			"claimed": true,
			"branch": "master",
			"job": "ibeo-cloud",
			"culprit": "Karl Gustavo"
		},
		{
			"state": "yellow",
			"claimed": false,
			"branch": "feature-abc",
			"job": "appbase",
			"culprit": "MAfred Auch"
		}
	]
};

$.each(data.top10, function (i, el) {
	var ele = $(".list-group a.item:first").parent().clone(); //Clone the first element
	ele.find(".topbranch").text(el.branch).css("color", el.state); //Update values
	ele.find(".topjob").text(el.job);
	ele.find(".topculprit").text(el.culprit);
	$(".list-group").append(ele); //Append cloned element to `list-group`
})
$(".list-group a.item:first").parent().remove(); //Remove first li
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">

<nav class="side-navbar">
	<div class="title">
		<h1>Top 10</h1>
	</div>

	<ul class="list-group"  style="list-style-type: none;">
		<li>
			<a class="item d-flex align-items-center" style="display: flex; justify-content: space-evenly;">
				<i class="fa fa-caret-up" style="font-size:48px;color:red"></i>
				<div class="item d-table-cell">
					<i class='topbranch'></i><br/>
					<i class='topjob'></i><br/>
					<i class='topculprit'></i><br/>
				</div>
				<i class="fa fa-refresh" style="font-size:30px;color:yellow"></i>
			</a>
		</li>
	</ul>
</nav>

关于javascript - 如何将json数据动态插入到html元素中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46661255/

相关文章:

javascript - 在所有处理完成之前,如何隐藏对页面的 jQuery 更改?

javascript - AJAX - 另一个函数可以在成功的过程中执行吗?

javascript - ASP.Net MVC jQuery UI DatePicker 日期格式

javascript - ID 属性周围有括号?

javascript - 按下拉框中的选定月份过滤表格

javascript - Angular 4格式字符串转换为html表单选项

javascript - handsontable - 刷新数据并维护过滤和排序条件

javascript - 如果用户不接受 cookie,则禁用 HTTP 严格传输安全 (HSTS)

javascript - 在javascript中删除文本文本的某些部分

html - Google 分析跟踪器未在 ionic 2 应用程序中启动