当前位置: 首页 > 面试题库 >

从JavaScript对象创建HTML表

宇文曦
2023-03-14
问题内容

我是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对象,该表就会动态执行。

您要遍历对象。最好的方法是使用for循环,并确保 循环变量 在对象(所有属性)的长度内保持有效。

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

您可以通过以下方式在for循环中访问存储在JSON对象中的值(假设html" target="_blank">定义的循环变量名为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";

另外: 为什么我使用innerHTML而不是appendChild()

JSFiddle

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

注意: 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



 类似资料:
  • 问题内容: 我有一个包含多个子节点的大HTML字符串。 是否可以使用此字符串构造 jQuery DOM对象? 我试过了,但它只返回一个包含所有单个节点的数组。 试图获得一个我可以使用.find()函数的元素。 问题答案: 更新: 从jQuery 1.8开始,我们可以使用$.parseHTML,它将HTML字符串解析为DOM节点数组。例如: 这段代码中发生了什么: 是DOM中不存在的伪造品 作为孩子

  • 我有Class1类的object1。我想将Class1类扩展到Class2,添加一个方法,然后创建Class2的object2,它在所有方法中的行为都与object1完全相同,只是现在它将有一个额外的方法。 Object1.OldMethod应该具有与Object2.OldMethod完全相同的行为。一个愚蠢的方法是编写一个脚本,用class1继承的100多个方法生成新类: 编辑:很抱歉没有把它说

  • 我需要将一个新项添加到现有的中,给定一个键和一个值。该值在方法sig中指定为,并且应该是objectNode.set()接受的类型之一(、、等)。但是我不能只执行,因为value只是一个,当然我会出现“不适用参数(String,Object)”错误。 一定有更好的办法,但我找不到。 我猜有一种使用的方法,但我现在还不清楚是如何使用的。例如,我可以将值作为字符串写出来,但我需要它作为我可以在Obje

  • 我有两个json对象,请不要是字符串,我想将它们组合成一个json对象,如下所示。 两个对象: 预期结果: 有没有一种优雅的方法可以做到这一点?我的意思是,不提取每支笔和每本书的值,然后使用以下方法将它们重新插入包 我正在使用org。科德豪斯。抛弃json。JSONObject,如果需要该信息。

  • 问题内容: 我正在尝试学习AppScript,并以Google表格为例。我想使用工作表中填充的一些数据创建一个简单的JSON对象。 表例 我希望JSON像这样 TQzPIVJf6-w](https://www.youtube.com/watch?v=TQzPIVJf6-w)。但是,该视频谈到了将每个列标题创建为一个对象。如我所希望的,列名是和行值是。 这是我当前的AppScript代码 输出是单个

  • 当我试图在我的用户之间创建reation时,我遇到了一个问题。一个用户可以是另一个用户的营养师,所以我有这样的结构: 在我的DbContext类中,我还定义了关系: 最后,我的迁移代码看起来是这样的: 为什么我有这些ApplicationUserId和ApplicationUserId1列?怎么解决? 你觉得这样定义那些关系怎么样?老实说,我需要用户只有一个营养师,但我没有找到实现它的方法。