从 JavaScript 对象创建 HTML 表

2024-02-09

我是 JavaScript 的初学者,想要在 HTML 中显示对象数组。

数据的格式是这样的:

[
  {"key":"apple","value":1.90},
  {"key":"berry","value":1.7},
  {"key":"banana","value":1.5},
  {"key":"cherry","value":1.2}
]

我想使用包含三列(id、名称、相关性)的列表来显示它们。并且id可以从1自动增加。

谁能告诉我如何编写 javascript 代码来显示它?

请给我一些资料或例子来学习。


解释

您想要的是使用 JavaScript 填充 HTML 中的表格(或另一个 DOMElement),一旦加载页面并收到 JSON 对象,就会动态执行 JavaScript。

您想要循环遍历该对象。最好的方法是使用for循环,并确保我们的循环变量对于我们对象的长度(它的所有属性)仍然有效。

获取 JSON 对象长度的最佳方法是通过myJSONObject.length:您选择的键myJSONObject并返回他们的计数。

您可以通过以下方式访问存储在 JSON 对象中的值:for循环(假设定义的循环变量名为i): myJSONObject[i].theAttributeIWantToGet


价格格式细分

现在,这些价格需要有正确的格式,不是吗?所以我们会检查是否有任何value属性有小于2之后的字符.在他们之内。如果是的话,我们再加一个小数0。我们还添加一个$在写入格式化值之前。以下是其工作原理的详细说明:

  • obj[i].value.toString().substring(startIndex, length)

    • 我们想检查之后的长度.符号,因此我们的 startIndex 将是该点在字符串中的位置。
    • obj[i].value.toString().substring(obj[i].value.toString().indexOf('.'),length)
    • 我们现在需要设置长度。我们想要找到点之后所有内容的长度,因此为了安全起见,我们将采用整个字符串的长度。
    • 最后结果:obj[i].value.toString().substring(obj[i].value.toString().indexOf('.'), obj[i].value.toString().length) < 2

      • 这将返回 true 或 false。如果为真:点后少于 2 位数字!
    • 我们添加if语句和最后一个零:

    • if (obj[i].value.toString().substring(obj[i].value.toString().indexOf('.'), obj[i].value.toString().length) < 2) obj[i].value += "0";

Also: 我为什么使用innerHTML代替appendChild() http://jsperf.com/html-innerhtml-vs-appendchild.


Solution

JSFiddle http://jsfiddle.net/mjE7R/

HTML

<table>
    <tbody id="tbody"></tbody>
</table>

JSON

[{
    "key": "apple",
    "value": 1.90
}, {
    "key": "berry",
    "value": 1.7
}, {
    "key": "banana",
    "value": 1.5
}, {
    "key": "cherry",
    "value": 1.2
}]

JavaScript

Note:JSON 对象将被命名obj在这种情况下。

var tbody = document.getElementById('tbody');

for (var i = 0; i < obj.length; i++) {
    var tr = "<tr>";

    /* Verification to add the last decimal 0 */
    if (obj[i].value.toString().substring(obj[i].value.toString().indexOf('.'), obj[i].value.toString().length) < 2) 
        obj[i].value += "0";

    /* Must not forget the $ sign */
    tr += "<td>" + obj[i].key + "</td>" + "<td>$" + obj[i].value.toString() + "</td></tr>";

    /* We add the table row to the table body */
    tbody.innerHTML += tr;
}

JSFiddle http://jsfiddle.net/mjE7R/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 JavaScript 对象创建 HTML 表 的相关文章

  • 从请求响应创建 PDF 不适用于 axios,但适用于本机 xhr

    为了强制从服务器下载 PDF 我尝试使用 axios 和本机 xhr 对象 原因是我必须发送post请求 因为我向服务器传递了太多数据 所以带有简单链接的选项 例如site ru download pdf对我不起作用 尽管我最终设法用 Xh
  • height:100% 在 Internet Explorer 中不起作用

    我有一个关于 CSS 属性的问题height 100 在 Internet Explorer 中 height 100 在 IE 中不起作用 但在 Firefox 和 Chrome 中可以 HTML 文件 div ul ul div
  • 如何在 Scala 中使用 Circe 解码 JSON 列表/数组

    我有代码片段 cursor downField params downField playlist downField items as List Clip 其中 Clip 是字符串和数字的简单 case 类 传入的 Json 应包含一个
  • 为 DocumentDb 设置自定义 json 转换器

    我正在使用类型化 DocumentQuery 从 Azure DocumentDb 集合中读取文档 from f in client CreateDocumentQuery
  • tinyMCE - 将RemoveFormat限制为格式列表

    当前的tinyMCE版本 3 5 2 Hi 我正在开发一个自定义插件 可以添加和删除自定义格式 http www tinymce com tryit custom formats php 向当前选择添加格式很简单 但我做不到 找到删除多种格
  • 在表单中重新填充密码字段会产生安全问题吗?

    我想知道当其他字段未验证时是否应该重新填充表单中的 屏蔽的 密码字段 我在网上看到过两种形式 重新填充屏蔽密码字段 清空密码字段 因此用户需要再次输入它 即使它是有效的 你的最佳实践是什么 重新填充密码字段是否表明存在安全漏洞 就可用性而言
  • WordPress ~ 如何在一页上显示多个 Google Chart?

    下面是我插入到 WordPress Visual Composer 中的原始 HTML 块中的一个 Google 图表的代码 图表 ID 名称为 chart div1 这适用于我的 WP 网页
  • 如何在流星运行时编译新模板?

    如何使用 Handlebars js 在流星中运行时编译新模板 var source
  • CSS 列不会水平对齐

    我正在使用列计数来允许我的文本流入两个不同的列 但第一列的顶部 最左边 低于另一列 col moz column count 2 webkit column count 2 column count 2 div h3 Options h3
  • chrome.extension.getBackgroundPage() 函数示例

    我正在开发一个需要在后台运行的小型 Chrome 扩展 但是 我知道当我使用弹出窗口时这是不可能的 经过一番阅读后 似乎最好的选择是创建popup js为了运行background js using chrome extension get
  • 解析JSON数据并将其放入gridview中

    我正在开发一个应用程序 我必须在其中解析JSON数据并且必须将它们放入自定义中gridview 它应该是这样的 到目前为止 我已经在 asynctask 中解析了 JSON 数据并获取了这些值 这是我的代码 private class ge
  • Phantomjs page.content 未检索页面内容

    我使用 Phantomjs 来抓取使用 JavaScript 和 Ajax 加载动态内容的网站 我有以下代码 var page require webpage create page onError function msg trace v
  • 在相同位置使用 jQuery 将列表框项目移动并删除到另一个列表框

    我有 2 个多选框 如本链接所示 http jsfiddle net bdMAF 38 http jsfiddle net bdMAF 38 function button1 click function list1 gt option s
  • Javascript TypeError:无法读取未定义的属性“indexOf”

    在此代码中 我想从cart products array var cart products 17 1 19 1 18 1 var product 17 each cart products function key item if ite
  • 如何使用nodejs获取目录中第一个扩展名为.txt的文件?

    我所有文件所在的目录是 usr home jordan 该目录下有很多文件 在目录本身中 但有一个文件以 txt 扩展名命名 使用nodejs和fs 我想将带有txt扩展名的第一个文件 或任何文件 放入 mytxtfilepath 中 我在
  • Angular 中的动态子组件

    我正在构建一个具有一致的元素列表设计模式的应用程序 如果我有一个 A 类型的对象 我会创建AComponent它接受a作为输入 然后创建另一个组件来迭代 A 列表 AListComponent 那么如果我有一个对象 B 我需要做同样的事情
  • JSON 编码和大引号

    我在 PHP 5 的本机实现中遇到了一个有趣的行为json encode 显然 当将对象序列化为 json 字符串时 编码器将清空包含 卷曲 引号的字符串的任何属性 这种类型可能会在启用自动转换的情况下从 MS Word 文档中复制粘贴 这
  • Selenium 查看鼠标/指针

    有什么方法可以在运行测试时真正看到硒鼠标吗 要么是 Windows 光标图像 要么是某种点或十字线或任何东西 我正在尝试使用拖放功能selenium and java in an HTML5Web 应用程序 并且能够看到光标以了解它实际在做
  • 使用 JavaScript 和 HTML 打印表情符号

    为什么这有效 p x1f604 p 而这并没有 document getElementById emoji innerHTML String fromCharCode parseInt 1f604 16 JS 术语中的 char 实际上是一
  • 如何将模型绑定到动态创建的类 nancyfx

    首先感谢任何愿意查看我的问题的人 我对 Nancyfx 还很陌生 在尝试将 JSON 有效负载绑定到动态创建的类时遇到问题 我按照这篇文章中的代码动态创建了该类 在C 中动态创建一个类 https stackoverflow com que

随机推荐

  • 根据同时在另一个字段中输入的内容自动填充字段

    我试图弄清楚如何根据使用 javascript 在另一个输入字段中输入的内容自动填充输入值 这是我的代码
  • 是否有使用 Kohana 进行用户注册和登录身份验证的示例项目?

    我想制作一个网络应用程序 平台 它可以做非常简单的事情 用户可以注册 获得帐户 然后登录到平台 我已经安装了 Kohana 如果有一个轻量级的演示项目可以利用这些东西来看看它是如何完成的 那就太酷了 有没有好的可用的 Gallery3 测试
  • 使用带有注入承诺的 ngRoute 'resolve' 参数

    我已经配置了resolve返回 Promise 的多个路由的参数 以便延迟控制器的实例化 直到 Promise 得到解决 目前我使用函数符号 而不是指定要注入的字符串 例如 when article id templateUrl app a
  • 从程序集中公开不同的类型名称(别名)

    这个问题与一个相关我之前未回答的问题 https stackoverflow com q 22097706 409279 因为我仍在解决同样的问题 但这是一种不同的方法 我目前正在 C NET 项目中使用第三方 SOAP Web 服务 不幸
  • 使用 OR 运算符的 IIF 查询不起作用

    我正在尝试在 MS Access 查询中运行以下内容作为条件 基本上我想做的是 如果 checkbox True 则显示所有记录 包括那些空白或空字段的记录 我的表单组合框 combo9 中的默认值为 如果 checkbox False 则
  • 使用knockoutjs虚拟元素动态创建html部分

    我试图将 虚拟元素 与 html 绑定一起使用来动态创建 html 部分 但失败并显示消息 绑定 html 不能与虚拟元素一起使用 这是jsfiddle http jsfiddle net d3Dpp http jsfiddle net d
  • 设置为 0.1 的浮点数将 false 与 0.1 进行比较[重复]

    这个问题在这里已经有答案了 int main float f 0 1 if f 0 1 printf True else printf False 我只是c的初学者 我不明白上述程序的行为 输出为假 为什么 0 1 is a double文
  • 整个应用程序中的一个 BillingClient 实例

    我有一个有很多活动的应用程序 其中一项活动是显示购买选项 在计费库的示例应用程序中 https github com googlesamples android play billing https github com googlesam
  • 计算流中的标准差

    使用 Python 假设我正在运行已知数量的项目I 并能够计算处理每一项所需的时间t 以及处理所花费的总时间T以及迄今为止已处理的项目数量c 我目前正在即时计算平均值A T c但这可能会因为单个项目需要非常长的时间来处理 几秒与几毫秒 而产
  • 使用 'document.body.scrollHeight;' 计算 UIWebView 内容动态高度在 iOS 10 中返回更大的值

    我正在使用 Objective C 创建一个应用程序 其中我使用的是UIWebView以 HTML 格式显示内容 我正在使用下面的代码UIWebView委托方法webViewDidFinishLoad NSUInteger contentH
  • 无法编译:节文本中无法识别重定位 0x2a

    编译 make 时我收到一条错误消息 make g fopenmp o lang test main o I include Lheader I include L lib llmi lblas lboost regex lpthread
  • php获取接口方法

    是否可以获取已实现接口的方法 例如 仅返回界面中的函数 bar interface iFoo public function bar class Foo implements iFoo public function bar public
  • 在java中,是否可以将Serialized接口添加到运行时没有它的类中?

    我想要序列化一个类 并且它实现了 Serializable 但它包含的对象之一没有实现 Serializable 有没有办法在运行时修改类以使其实现 Serialized 接口 以便我可以序列化它 我无法在编译时更改它 因为它是第三方库 也
  • IEnumerable 作为 WCF 方法的返回类型

    如果我定义一个具有字符串和日期时间属性的 Test 对象 并使用它返回 WCF 中的 IEnumerable T 集合 OperationContract IEnumerable
  • 如何在spyder中添加所有python库

    如何在 Spyder IDE 中添加我已使用终端下载并存在于目录 home username local lib python3 6 site packages 中的所有 python 库 我找到了答案 只需转到 工具 gt PYTHONP
  • 聚合根引用其他聚合根

    我目前正在大量使用 DDD 并且在从其他聚合根加载 操作聚合根时遇到问题 对于模型中的每个聚合根 我还有一个存储库 存储库负责处理根的持久性操作 假设我有两个聚合根 以及一些成员 实体和值对象 聚合根 1 和聚合根 2 AggregateR
  • 在一个逗号分隔的单元格中显示所有匹配的值

    我的 Excel 2010 电子表格中有两列数据 A 列中是一个类别 B 列中是一个值 对于 A 列中的每个唯一类别 B 列中将有多个值 我想在单独的工作表中实现的目标是在一个逗号 或分号等 分隔的单元格中显示每个唯一类别的所有值 例如 如
  • kafka-python 中的多处理

    我一直在使用 python kaka 模块从 kafka 代理中消费 我想并行使用具有 x 个分区的同一主题 该文档有这样的内容 Use multiple consumers in parallel w 0 9 kafka brokers
  • 从 GitHub 下载速度非常慢

    从 GitHub 克隆存储库时 我有时只能获得 50 100 KiB 秒 保持稳定 的下载速率 而大多数时候我的下载速率约为 10 MiB 秒 当从不同的机器 不同的全局IP 克隆相同的存储库时 我获得了全速 GitHub 对存储库克隆有速
  • 从 JavaScript 对象创建 HTML 表

    我是 JavaScript 的初学者 想要在 HTML 中显示对象数组 数据的格式是这样的 key apple value 1 90 key berry value 1 7 key banana value 1 5 key cherry v