javascript - JSON 到无序列表,已排序
问题描述
我有一个 xml 文件,我创建了一个 JSON 数组,其中包含的对象是具有政党、姓名和是否已被投票的状态的参议员。只有名称需要显示在我的 HTML 列表中。不过,我不知道如何做到这一点,而且我想在我去的时候动态地对民主党人和共和党人进行分类。这是数组的示例:
[{"name":"Chuck Schumer","party":"Democrat","voted":false},
{"name":"Dick Durbin","party":"Democrat","voted":false}, ...]
我不确定如何做到这一点。我在我的 html 中设置了 ID 元素,因为我知道我需要它。
我需要先 JSON.parse 吗?你如何将它们连接到 ID 值?
这是我的 HTML 正文。
<div id="dropLists" style="display: table">
<div style="display: table-row">
<div class="dropList">
<fieldset>
<legend>Democrats:</legend>
<ul id="democrats">
</ul>
</fieldset>
</div>
<div class="dropList">
<fieldset>
<legend>Republicans:</legend>
<ul id="republicans">
</ul>
</fieldset>
</div>
</div>
</div>
解决方案
您快到了。这是一个概述:
document.querySelector
选择 2 个ul
元素document.createElement
创建li
元素element.appendChild
将li
元素插入到 `uls 元素中。
let data = [{
"name": "Chuck Schumer",
"party": "Democrat",
"voted": false
},
{
"name": "Dick Durbin",
"party": "Democrat",
"voted": false
},
{
"name": "X Y Z",
"party": "Republican",
"voted": false
},
];
data.forEach(({name, party}) => {
let itemEl = document.createElement('li');
itemEl.textContent = name;
let listId = party === 'Democrat' ? '#democrats' : '#republicans';
let listEl = document.querySelector(listId);
listEl.appendChild(itemEl);
});
<div id="dropLists" style="display: table">
<div style="display: table-row">
<div class="dropList">
<fieldset>
<legend>Democrats:</legend>
<ul id="democrats">
</ul>
</fieldset>
</div>
<div class="dropList">
<fieldset>
<legend>Republicans:</legend>
<ul id="republicans">
</ul>
</fieldset>
</div>
</div>
</div>
推荐阅读
- javascript - 是否可以使用虚拟消息 React 测试 socket.Io
- javascript - 如何使用 Axios 将大对象作为字符串发布?
- mysql - 在 mysql 工作台上计算模式的最佳方法是什么?
- sql - 如何对一组行进行分组,直到找到不同的值并保持顺序
- python - Python - Altair - 下载为 html 时未生成 geoshape 背景
- javascript - 如何获取设备的默认 devicePixelRatio?
- reactjs - 解决方案 - 关于 userRef
- javascript - 使用我的 Discord 机器人分配角色的一些问题
- python - 如何在没有 qrc 系统的 pyqt6 中设置背景图像
- java - Firestore 字符串未加载