javascript 将数组的元素映射到 HTML DIV 模板
javascript map elements of an array to HTML DIV template
我正在寻找的是一个函数或一段代码,可以帮助我将数组的结果转储到HTML DIV中。我知道有不同的方法可以做到这一点,但这些都需要遍历数组。我正在寻找的更像是一个映射工具。例如:
假设我的 javascript 中有以下数组:
var myarray = [];
myarray['name'] = 'value1';
myarray['lastname'] = 'value2';
myarray['address'] = 'value3';
我接下来要做的是以某种方式将数组的每个值与 HTML DIV 中的等效值相关联。例如:
<div id="name"></div>
<div id="lastname"></div>
<div id="address"></div>
或者更好的是,我希望能够在我的 HTML 中有一个表格,可以在不使用 DIV 的情况下使用这些信息获取。 像这样:
<table width="277" height="146" border="1">
<tr>
<td width="97">Name</td>
<td width="87">{name}</td>
</tr>
<tr>
<td>Lastname</td>
<td>{lastname}</td>
</tr>
<tr>
<td>Address</td>
<td>{address}</td>
</tr>
</table>
所以这个想法是,当我在我的Javascript中获取值(通过jquery)时,我可以将数组的全部内容写入HTML表,而不必遍历数组的每个值。
有什么想法可以帮助我实现我的目标吗?
这是一个非常简单的模板系统。首先为模板创建脚本标记:
<script id="template" type="text/html">
<table width="277" height="146" border="1">
<tr>
<td width="97">Name</td>
<td width="87">{name}</td>
</tr>
<tr>
<td>Lastname</td>
<td>{lastname}</td>
</tr>
<tr>
<td>Address</td>
<td>{address}</td>
</tr>
</table>
</script>
然后,您可以使用给定数据(作为对象)的这个小函数来渲染模板:
// An object, not an array
var data = {
name: 'value1',
lastname: 'value2',
address: 'value3'
};
// Very basic templating
function render(template, data) {
var patt = /'{([^}]+)'}/g; // matches {key}
return template.replace(patt, function(_, key) {
return data[key];
});
}
// Grab html from template
var template = $('#template').html();
// Generate html given the data and append to body
$('body').append(render(template, data));
演示:http://jsbin.com/ibeBIxO/1/edit
如果您想要更复杂的东西,请查看下划线模板。
听起来你正在寻找一个JavaScript框架,它将即时将HTML元素添加到DOM(文档对象模型)中。
在这种特殊情况下,遍历所有数组元素并不是那么多工作。
以下是一些帮助您入门的参考资料:
使用 JavaScript 动态添加和删除 html 元素
jQuery - 添加元素
你可以使用 JSON,比如:
var myarray = {
name: 'value1',
lastname: 'value2',
address: 'value3'
}
var tbl = $(table);
$.each(myarray, function(i, v){
tbl.append('<tr><td>'+i+'</td><td>'+v+'</td></tr>');
});
然后使用 jQuery 的 .css()
方法添加您的样式。
相关文章:
- how to convert html <div> to pdf
- 选择时使用jQuery克隆HTML DIV
- Custom clipping path over HTML <div>
- 如何为特定的 HTML Div 创建 dijit/Dialog,并使用 Div 的元素作为其内容
- HTML DIV 显示无元素调整大小
- 选定的 HTML DIV 元素可拖动 JQueryUi 可拖动
- html <div> doesn't seem to get recognised
- javascript 将数组的元素映射到 HTML DIV 模板
- HTML Div转换为带有背景图像Html2canvas的图像
- Displaying php results in html <div>?
- 如何获取HTML DIV值
- 无法使用 Javascript 将 jQuery 类应用于 HTML DIV
- 使用Angular和ng repeat将Attributes添加到HTML DIV中
- 发送HTML Div作为电子邮件文件附件
- 如何获取JSON数据从HTML DIV在同一页面Highcharts
- 动态复制HTML DIV与Javascript
- 在HTML Div中每行的开头插入一个字符
- 如何将JS变量的值路由到HTML Div
- HTML Div类不能使图像变为新图像
- 将HTML DIV转换为可重复使用的全局函数??也许Javascript