【发布时间】:2019-06-06 17:42:49
【问题描述】:
我听到了很多关于填充表格的信息。当我在谷歌上查找它时,有一整个宇宙的帖子如何做到这一点。但是让我们谈谈填充视图!
是的,你没听错!我认为这是每个人第一次都会做的最简单和最正常的方式。
我想创建一个列表!在这个简单的列表中,我想显示句子。看起来像这样:https://www.dropbox.com/s/swm1n9ezled0ppd/img.jpg?dl=0
我的想法是为每个项目使用一个 div,其中包含一个标题等等。但是我将如何在 javascript 的帮助下填充该 div 呢?最重要的是如何将 div 的标题设置为不同的值?
如何通过 JavaScript 做到这一点,或者还有其他更好的方法我不知道吗?
编辑:
db.collection("classes").doc(data.readGrades).get().then(function(doc) {
if (doc.exists) {
console.log("Document data:", doc.data());
const data = doc.data();
const members = data.members;
var permission_table = document.getElementById("noten_tabelle_permission");
var permission_table_container = document.getElementById("main_padding");
members.forEach(el => {
console.log(el)
table_number++;
clone = permission_table.cloneNode(true); // true means clone all childNodes and all event handlers
clone.id = "layout_table" + table_number;
permission_table_container.appendChild(clone);
db.collection("users").doc(el).collection("grades").get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
console.log(doc.id, " => ", doc.data());
const data = doc.data();
//addToTable("grade_table" + table_number, doc.id, data.mdl, data.klu);
//window.alert("Table name: " + ["grade_table" + table_number])
//____________________________________________________________________________
const html = fillTemplate("grade_table" + table_number, "test", data.mdl, data.klu);
// Join the array of html and add it as the `innerHTML` of `main`
document.getElementById("main_padding").insertAdjacentHTML('beforeend', html);
addToTable("grade_table" + table_number, doc.id, data.mdl, data.klu);
});
});
})
} else {
console.log("No such document!");
}
}).catch(function(error) {
console.log("Error getting document:", error);
});
这是您编辑的写函数:
function fillTemplate({ table_name, id, subject, mdl, klu }) {
return `
<div class="noten_tabelle_permission" id="noten_tabelle_permission">
<h1 id="member_name">${id}</h1>
<table id="${table_name}" style="width:100%">
<tr>
<th>Fach</th>
<th>mündlich</th>
<th>Klausur</th>
</tr>
<!-- Make content with js code -->
</table>
</div>
`;
}
这里还有另一个功能:
function addToTable(table_name, subject, mdl, klu) {
var subject_name = getSubjectByNumber(subject);
var short_subject = getSubjectShortByNumber(subject);
//Zeile erstellen
var y = document.createElement([short_subject]);
y.setAttribute("id", [short_subject]);
document.getElementById([table_name]).appendChild(y);
//Spalten in einer Zeile
var y = document.createElement("TR");
y.setAttribute("id", [short_subject]);
//Spalten in einer Zeile
var cE = document.createElement("TD");
var tE = document.createTextNode([subject_name]);
cE.appendChild(tE);
y.appendChild(cE);
var a = document.createElement("TD");
var b = document.createTextNode([mdl]);
a.appendChild(b);
y.appendChild(a);
var c = document.createElement("TD");
var d = document.createTextNode([klu]);
c.appendChild(d);
y.appendChild(c);
document.getElementById(table_name).appendChild(y);
}
这里是 HTML:
<div class='main_has_permission' id="main_has_permission" style="display: none;">
<div class='main_padding' id="main_padding">
<div class="noten_tabelle_permission" id="noten_tabelle_permission">
<h1 id="member_name"></h1>
<table id="grades_table" style="width:100%">
<tr>
<th>Fach</th>
<th>mündlich</th>
<th>Klausur</th>
</tr>
<!-- Make content with js code -->
</table>
</div>
</div>
</div>
提前致谢。 ~卡尔
【问题讨论】:
-
这个问题对 SO 来说太宽泛了。列表的数据来自哪里?你知道 HTML、CSS、JS 吗?你要求我们为你做这项工作吗?因为一个列表很容易创建没有 JS,但你甚至没有向我们展示你如何处理那个。 (见minimal reproducible example)。
-
@Andy 你能看看我的编辑吗?
-
以下是我们需要知道的才能提供帮助:1) 您的数据来自哪里? 2) 您是否使用任何特定工具(例如 javascript 框架、Web 开发框架等) 3) 您对 javascript 了解多少,(您尝试过什么,从哪里开始?)...
标签: javascript html css listview populate