如何将包含HTML元素的数组转换为Javascript中的表?
我有一个数组,其中包含HTML元素,如如何将包含HTML元素的数组转换为Javascript中的表?,javascript,html,Javascript,Html,我有一个数组,其中包含HTML元素,如 你能告诉我在我的表格中显示HTML元素应该怎么做吗 var orderArray=[ [“1”、“2012年8月29日”、“产品1”、“客户1”], [“2”、“2012年8月29日”、“产品2”、“客户2”], [“3”、“2012年8月29日”、“产品3”、“客户3”], [“4”、“2012年8月29日”、“客户4”], [“5”、“2012年8月29日”、“产品5”、“客户5”] ]; 函数显示(){ //处理div var table=doc
你能告诉我在我的表格中显示HTML元素应该怎么做吗
var orderArray=[
[“1”、“2012年8月29日”、“产品1”、“客户1”],
[“2”、“2012年8月29日”、“产品2”、“客户2”],
[“3”、“2012年8月29日”、“产品3”、“客户3”],
[“4”、“2012年8月29日”、“客户4”],
[“5”、“2012年8月29日”、“产品5”、“客户5”]
];
函数显示(){
//处理div
var table=document.createElement(“表”);
对于(var i=0;i
我在这个问题上使用了Bergi提出的代码:
谢谢,您可以使用属性来解决存在HTML时解析HTML和不存在HTML时注入纯文本的问题
此外,您可以使用方法作为一种更简单的循环方式
var orderArray=[
[“1”、“2012年8月29日”、“产品1”、“客户1”],
[“2”、“2012年8月29日”、“产品2”、“客户2”],
[“3”、“2012年8月29日”、“产品3”、“客户3”],
[“4”、“2012年8月29日”、“客户4”],
[“5”、“2012年8月29日”、“产品5”、“客户5”]
];
函数显示(){
//处理div
var container=document.getElementById('container');
var table=document.createElement(“表”);
//数组支持接受回调函数的forEach方法
//对数组的每个项执行。此函数自动
//传递了3个参数:当前数组元素、当前索引和数组本身。
//我们只需要捕获对数组元素的引用(中的value和innerValue)
//这个例子)。
forEach(函数(值){
var row=table.insertRow();
forEach(函数(innerValue){
var cell=row.insertCell();
cell.innerHTML=innerValue;
});
});
返回表;
}
container.appendChild(display())代码>
td{padding:5px;}
您可以使用属性来解决存在HTML时解析HTML和不存在HTML时注入纯文本的问题
此外,您可以使用方法作为一种更简单的循环方式
var orderArray=[
[“1”、“2012年8月29日”、“产品1”、“客户1”],
[“2”、“2012年8月29日”、“产品2”、“客户2”],
[“3”、“2012年8月29日”、“产品3”、“客户3”],
[“4”、“2012年8月29日”、“客户4”],
[“5”、“2012年8月29日”、“产品5”、“客户5”]
];
函数显示(){
//处理div
var container=document.getElementById('container');
var table=document.createElement(“表”);
//数组支持接受回调函数的forEach方法
//对数组的每个项执行。此函数自动
//传递了3个参数:当前数组元素、当前索引和数组本身。
//我们只需要捕获对数组元素的引用(中的value和innerValue)
//这个例子)。
forEach(函数(值){
var row=table.insertRow();
forEach(函数(innerValue){
var cell=row.insertCell();
cell.innerHTML=innerValue;
});
});
返回表;
}
container.appendChild(display())代码>
td{padding:5px;}
要简化整个代码:
container.innerHTML="<table>"+(orderArray.map(row=>"<tr><td>"+row.join("</td><td>")+"</td></tr>").join(""))+"</table>".
container.innerHTML=“”+(orderArray.map(行=>“”+row.join(“”+“”)).join(“”)+“”。
要简化整个代码:
container.innerHTML="<table>"+(orderArray.map(row=>"<tr><td>"+row.join("</td><td>")+"</td></tr>").join(""))+"</table>".
container.innerHTML=“”+(orderArray.map(行=>“”+row.join(“”+“”)).join(“”)+“”。
该.createTextNode()
方法完全按照其名称执行:它创建一个文本节点。这就是浏览器忽略HTML标记的原因。。。。或者设置cell.innerHTML
。标题也有点不正确,因为我只看到字符串[]数组。任何数组中都没有HTMLman@StephanBijzitter你应该再看看。第4个数组元素中有一个超链接。@StephanBijzitter有一些带有标记的表格单元格,如orderArray[0][3]
方法.createTextNode()
方法完全按照其名称所示:它创建一个文本节点。这就是浏览器忽略HTML标记的原因。。。。或者设置cell.innerHTML
。标题也有点不正确,因为我只看到字符串[]数组。任何数组中都没有HTMLman@StephanBijzitter你应该再看看。第4个数组元素中有一个超链接。@StephanBijzitter有一些带有标记的表格单元格,如orderArray[0][3]
@ScottMarcus join?@ScottMarcus join?感谢您提供的array.forEach()
提示,更加优雅。@Florent不客气。是的,在这种情况下,它允许我们完全删除索引。是否可以使用insertRow()
指定插入tr
的是td
还是th
?找不到如何将第一个数组索引声明为表头。编辑哦,我看到有createTHead()
!感谢您的Array.forEach()
提示,更加优雅。@Florent不客气。是的,在这种情况下,它允许我们完全删除索引。是否可以使用insertRow()
指定插入tr
的是td
还是th
?找不到如何将第一个数组索引声明为表头。编辑哦,我看到有createTHead()
!
var orderArray = [
["1", "29-Aug-2012", "Product1", "client1"],
["2", "29-Aug-2012", "Product2", "client2"],
["3", "29-Aug-2012", "Product3", "client3"],
["4", "29-Aug-2012", "<a href='http://website.org/prod/'>Product4</a>", "client4"],
["5", "29-Aug-2012", "Product5", "client5"]
];
function display() {
// get handle on div
var table = document.createElement("table");
for (var i = 0; i < orderArray.length; i++) {
var row = table.insertRow();
for (var j = 0; j < orderArray[i].length; j++) {
var cell = row.insertCell();
cell.appendChild(document.createTextNode(orderArray[i][j]));
}
}
return table;
}
var container = document.getElementById('container');
container.appendChild(display());
container.innerHTML="<table>"+(orderArray.map(row=>"<tr><td>"+row.join("</td><td>")+"</td></tr>").join(""))+"</table>".