【发布时间】:2021-09-12 21:00:40
【问题描述】:
我正在将一个 excel 文件解析为 JSON,总体上运行良好。但是,如果变量包含来自 JSON 的特定文本,我正试图弄清楚如何附加不同的 HTML。
到目前为止,这是我所拥有的:
/* This is part of the Excel conversion. Added for reference */
var workbook = XLSX.read(bstr, { type: "binary" });
var first_sheet_name = workbook.SheetNames[0];
var worksheet = workbook.Sheets[first_sheet_name];
var jData = XLSX.utils.sheet_to_json(worksheet, { raw: false });
$.each(jData, function (i, f) {
var hide = f.Hidden;
var el =
"<div class='thing'>" +
"<h2>" +
f["First Name"] +
" " +
f["Last Name"] +
"</h2>" +
"<h3>" +
f.Title +
"</h3>" +
"<p>" +
f.Comment +
"</p>" +
"</div>";
$(el).appendTo("#wrapper");
});
但我很好奇的是确保这是有效的:
$.each(jData, function (i, f) {
var hide = f.Hidden;
var el =
"<div class='thing'>" +
"<h2>" +
f["First Name"] +
" " +
f["Last Name"] +
"</h2>" +
"<h3>" +
f.Title +
"</h3>" +
"<p>" +
f.Comment +
"</p>" +
"</div>";
var other =
"<div class='thing'>" +
"<h2>" +
f["First Name"] +
" " +
f["Last Name"] +
"</h2>" +
"<h3>" +
f.Title +
"</h3><p>Comment Hidden</p></div>";
if (hide === undefined) {
$(el).appendTo("#wrapper");
} else {
$(other).appendTo("#wrapper");
}
});
总体而言,如果 hide 变量从 JSON 数据返回为 undefined,则它似乎在工作,然后从 el 变量附加 HTML 元素。但如果它确实以 not 未定义的形式返回,则附加来自 other 变量的 HTML。我只是想确保我没有遗漏任何东西。另外,如果有更好的方法来解决这个问题。我觉得它有点“笨拙”,但奇怪的是它似乎在表面上起作用。
【问题讨论】:
-
要明确,如果
f.Hidden是undefined附加到el,如果f.Hidden是trueOR @ 987654332@ 追加other- 对吗? -
@RoryMcCrossan - 嗯,更像是如果
f.Hidden不返回undefined然后附加el。否则,如果它确实返回了 notundefined的内容,则返回其他内容。基本上,当我console.log从 JSON 中取出内容时,来自f.Hidden的数据要么有,要么没有。如果不是,那么它会从 JSON 中以undefined的形式返回。我知道...这也让我很头疼,这就是我问的原因,哈哈!
标签: javascript html jquery json each