如何在HTML中查看数组
how to view an array in HTML
因此,我希望在输入制造商时返回的数组在HTML中显示数组中每个对象的完整数据。然而,当我在HTML页面中调用该函数时,我只返回word对象,但制造商在原始数组中定义了许多次。有人能帮忙吗?
// To make program read the data inside the array cars and pick the ones with the desired manufacturer//
function findManufacturer(manufacturer) {
var retcars = [];
for (i = 0; i < cars.length-1; i++) {
car = cars[i]
if (car.manufacturer == manufacturer) {
retcars.push(car)
}
}
display(retcars);
}
function display(mycars) {
document.getElementById('mycars').textContent= mycars;
}
在最简单的级别上,您可以使用JSON.stringify
。这在调试时非常有用:
function display(mycars) {
document.getElementById('mycars').textContent= JSON.stringify(mycars);
}
您还可以遍历数组,然后遍历每辆车的属性,生成一些动态HTML:
function display(mycars) {
var html = '';
for (var car in mycars) {
for (var prop in car) {
html += prop + ': ' + car[prop];
}
html += '<hr/>';
}
document.getElementById('mycars').innerHTML = html;
}
理想情况下,您希望能够编写HTML模板来显示数据。我建议看看一些客户端模板引擎,比如Mustache.js或Underscore.js。这些引擎允许您编写带有标记的HTML模板来表示数据字段:
<script type="text/template" id="car-template">
<% _.each(cars, function(car) { %>
<div>
<div><%= make %></div>
<div><%= model %></div>
<div>
<hr/>
<% } %>
</script>
然后你只需像这样写:
function display(mycars) {
var template = _.template(document.getElementById("car-template"));
var html = template({ cars: mycars });
document.getElementById('mycars').innerHTML = html;
}
mycars
是一个数组,所以你不能将元素的文本内容设置为数组…这就是为什么你会得到著名的[Object Object]字符串。
在将数组插入DOM之前,需要解析数组并将其转换为某种HTML。
尝试这样做,我们把mycars的内容放入一个表,然后把它放入您的<div id="mycars">
:
function display(mycars) {
var table = '<table>';
for (var i = 0; i < mycars.length; i++) {
table += '<tr>';
foreach (var prop in mycars[i]) {
table += '<td>' + mycars[i][prop] + '</td>';
}
table += '</tr>';
}
table += '</table>';
document.getElementById('mycars').innerHTML = table;
}
试试这些改变:
function display(mycars) {
document.getElementById('mycars').innerHTML= mycars.toString();
}
先进使用JSON.stringify
var x={a:"hello",b:[1,2,3]},
y=function(a,b){return typeof b==='string'?undefined:b},
D=document;
D.body.appendChild(D.createElement('pre')).textContent=JSON.stringify(x,y,' ');
JSON.stringify(Array,ReplacerFunction,SpaceToUse)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify replace
函数允许您在创建文本字符串之前替换数组/对象中的一些值。在我的例子中,我排除了字符串。
元素pre
我也喜欢使用pre,因为它是预格式化的,所以''n'
是一个新行''t'
是一个标签,在我的例子中,我有一个简单的空白。
http://jsfiddle.net/T8u32/
带替换功能
http://jsfiddle.net/T8u32/1/相关文章:
- 使用Web Html表单创建Javascript数组
- 如何放置ÅÄ和#214;在javascript数组中,然后将其与html文本进行比较
- jQuery对象从html表中查询为两个一维数组,用于Chartist图表
- 正在转义javascript数组中的html字符
- 构建HTML选择字段并使用JavaScript数组选择选项
- 使用jQuery在html数组中设置一个值
- 如何在angular js/HTML中处理数组
- 如何将html中的列表项解析为javascript数组
- 如何查找给定数组中包含值的HTML元素
- 我想使用Javascript中的循环在HTML中的特定id中显示数组中的多个对象
- 如何使用angular指令从html中获取数组
- 如何将数组(Google应用程序脚本)返回到HTML侧边栏
- 每隔几秒钟从 html 中的数组中的值更改类
- 将 PHP 数组传递给 HTML 页面
- 在 HTML URL 中使用数组
- HTML 数组乘以 javascript
- 数组/HTML中的函数
- 选择多个复选框并将值分配给数组 - HTML/Javascript
- 在JavaScript中传递数组HTML元素
- 数组HTML Javascript中的图像