Javascript 从JSON数据创建html表
我有一个html文件,其中有这个代码段Javascript 从JSON数据创建html表,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我有一个html文件,其中有这个代码段 <div> <table id="apps"></table> </div> 只有一个“1”,但是“1”列表中可以有多个词典。在本例中,列表中只有一个{},[],但可以存在多个{},其中正好包含五个项目,如上图所示 我想从这些数据创建一个表,其中每一行表示[]中的一个{},并有五列分别表示a、B、C、D、E 我不确定我是否应该拥有这个结构,标记已经存在于我的html中(这不在我提供的html代码中)
<div>
<table id="apps"></table>
</div>
只有一个“1”
,但是“1”
列表中可以有多个词典。在本例中,列表中只有一个{}
,[]
,但可以存在多个{}
,其中正好包含五个项目,如上图所示
我想从这些数据创建一个表,其中每一行表示[]
中的一个{}
,并有五列分别表示a、B、C、D、E
我不确定我是否应该拥有这个结构,标记已经存在于我的html中(这不在我提供的html代码中),然后填充这些标记,或者我的函数是否应该在我的html文件中加载这些数据,访问table id=“apps”并创建这些标记,然后填充这些标记?哪个更好?如何才能有效地实现这一点 我不知道您对该项目的要求,但我会跳过所有这些麻烦,使用类似的库。有许多方法可以从或其他填充表。即使您无法修补表数据源以符合其标准,也需要重新格式化。不知道您对该项目的要求,但我会跳过所有这些麻烦,使用类似的库。有许多方法可以从或其他填充表。即使您无法修补表数据源以符合其标准,也需要重新格式化。您的问题是“哪一个更好:将表行和单元格标记已经包含在标记中,还是在获取数据时构建它们?” 我认为更好的选择是在获取对象时构建数据 在psedoocode中:
for each object in 1
make new row <tr></tr>
for each data in object
make new cell <td></td>
insert data into <td>[here]</td>
insert cell into <tr>[here]</tr>
insert filled row into "apps" by using it's ID
done
用于1中的每个对象
吵架
对于对象中的每个数据
制造新电池
将数据插入[此处]
将单元格插入[此处]
使用填充行的ID将其插入“应用程序”中
完成
这是否足以满足您想要了解的内容?您的问题是“哪一个更好:将表行和单元格标记已经包含在标记中,还是在获取数据时构建它们?”
我认为更好的选择是在获取对象时构建数据
在psedoocode中:
for each object in 1
make new row <tr></tr>
for each data in object
make new cell <td></td>
insert data into <td>[here]</td>
insert cell into <tr>[here]</tr>
insert filled row into "apps" by using it's ID
done
用于1中的每个对象
吵架
对于对象中的每个数据
制造新电池
将数据插入[此处]
将单元格插入[此处]
使用填充行的ID将其插入“应用程序”中
完成
这是否足以满足您想要了解的内容?请查看此演示:
var jsonResponse={
"1": [{
“A”:“,
“B”:“,
“C”:“,
“D”:“,
“E”:”
},
{
“F”:“,
“G”:“,
“H”:“,
“I”:“,
“J”:”
}
],
"2": [{
“K”:“,
“L”:“,
“M”:“,
“N”:“,
“O”:”
},
{
“P”:“,
“Q”:“,
“R”:“,
“S”:“S”,
“T”:”
}
]
};
$.each(jsonResponse,函数(outerKey,list){
变量行=$(''{
id:“行”+outerKey
});
$.each(列表、函数(innerKey、值){
for(var输入值){
变量列=$(''{
id:钥匙,
文本:键
})
行。追加(列);
}
});
$(“#应用程序”)。追加(行);
});代码>
查看此演示:
var jsonResponse={
"1": [{
“A”:“,
“B”:“,
“C”:“,
“D”:“,
“E”:”
},
{
“F”:“,
“G”:“,
“H”:“,
“I”:“,
“J”:”
}
],
"2": [{
“K”:“,
“L”:“,
“M”:“,
“N”:“,
“O”:”
},
{
“P”:“,
“Q”:“,
“R”:“,
“S”:“S”,
“T”:”
}
]
};
$.each(jsonResponse,函数(outerKey,list){
变量行=$(''{
id:“行”+outerKey
});
$.each(列表、函数(innerKey、值){
for(var输入值){
变量列=$(''{
id:钥匙,
文本:键
})
行。追加(列);
}
});
$(“#应用程序”)。追加(行);
});代码>
试试这个简单的工作示例。我希望它能按照你的期望工作
var dataObj={
"1": [{
“A”:“,
“B”:“,
“C”:“,
“D”:“,
“E”:”
},
{
“F”:“,
“G”:“,
“H”:“,
“I”:“,
“J”:”
},
{
“K”:“,
“L”:“,
“M”:“,
“N”:“,
“O”:”
}
]};
var dictionaryData=dataObj[“1”];
for(字典数据中的变量i){
var table=document.getElementById(“应用程序”);
var tr=document.createElement(“tr”);
var td=document.createElement(“td”);
for(字典中的var键数据[i]){
var txt=document.createTextNode(键);
td.appendChild(txt);
tr.appendChild(td);
}
表1.儿童(tr);
}
表格,td{
边框:1px纯黑;
}
试试这个简单的工作示例。我希望它能按照你的期望工作
var dataObj={
"1": [{
“A”:“,
“B”:“,
“C”:“,
“D”:“,
“E”:”
},
{
“F”:“,
“G”:“,
“H”:“,
“I”:“,
“J”:”
},
{
“K”:“,
“L”:“,
“M”:“,
“N”:“,
“O”:”
}
]};
var dictionaryData=dataObj[“1”];
for(字典数据中的变量i){
var table=document.getElementById(“应用程序”);
var tr=document.createleme
CREATE PROC SearchAllTables
(
@SearchStr nvarchar(100)
)
AS
BEGIN
CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630))
SET NOCOUNT ON
DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')
WHILE @TableName IS NOT NULL
BEGIN
SET @ColumnName = ''
SET @TableName =
(
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
AND OBJECTPROPERTY(
OBJECT_ID(
QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
), 'IsMSShipped'
) = 0
)
WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
BEGIN
SET @ColumnName =
(
SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)
AND TABLE_NAME = PARSENAME(@TableName, 1)
AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
AND QUOTENAME(COLUMN_NAME) > @ColumnName
)
IF @ColumnName IS NOT NULL
BEGIN
INSERT INTO #Results
EXEC
(
'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630)
FROM ' + @TableName + ' (NOLOCK) ' +
' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
)
END
END
END
SELECT ColumnName, ColumnValue FROM #Results
END
exec SearchAllTables @SearchStr='Canada'