【发布时间】:2020-05-23 07:31:32
【问题描述】:
我有一张javascript从数据库获取数据时创建的表,就是这个函数
function gotCData(snapshot){
snapshot.forEach(userSnapshot => {
var confirmed = userSnapshot.val().confirmed;
var date = userSnapshot.val().date;
var deaths = userSnapshot.val().deaths;
var recovered = userSnapshot.val().recovered;
//console.log(confirmed, date, deaths, recovered);
var local = k;
var csvDate = date;
var population = recovered;
var totalCases = confirmed;
var totalDeaths = deaths;
//console.log(location);
var tr = document.createElement('tr');
var td1 = document.createElement('td');
var td2 = document.createElement('td');
var td3 = document.createElement('td');
var td4 = document.createElement('td');
var td5 = document.createElement('td');
var tdLocal = document.createTextNode(local);
var tdPopulation = document.createTextNode(population);
var tdTotalCases = document.createTextNode(totalCases);
var tdTotalDeaths = document.createTextNode(totalDeaths);
var tdDate = document.createTextNode(csvDate);
td1.appendChild(tdLocal)
td2.appendChild(tdPopulation)
td3.appendChild(tdTotalCases)
td4.appendChild(tdTotalDeaths)
td5.appendChild(tdDate)
var tRow1 = document.getElementById("displayCorona").appendChild(td1);
var tRow2 = document.getElementById("displayCorona").appendChild(td2);
var tRow3 = document.getElementById("displayCorona").appendChild(td3);
var tRow4 = document.getElementById("displayCorona").appendChild(td4);
var tRow5 = document.getElementById("displayCorona").appendChild(td5);
//Writes the Table Row then the Divs after
document.getElementById("displayCorona").appendChild(tr, tRow1, tRow2, tRow3, tRow4, tRow5);
});
}
我有一个搜索功能:
function search(){
// Declare variables
var input, filter, table, tr, td, i, txtValue;
input = document.getElementById("myInput");
filter = input.value.toUpperCase();
table = document.getElementById("displayCorona");
tr = table.getElementsByTagName("tr");
// Loop through all table rows, and hide those who don't match the search query
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td1")[0];
if (td) {
txtValue = td.textContent || td.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}
}
}
}
这些表是在我遍历 Firebase 数据库中的每个节点时创建的。搜索功能来自 W3Schools,但我不确定为什么它不搜索由上述功能创建的表。
【问题讨论】:
-
您的第一个函数只创建了 1 个
tr- 但您设置了 row1、row2 等。使用开发人员工具查看生成的表 - 它不会有效。 -
你的输入ID真的是
myInput。请查看并报告开发者控制台中显示的错误(如果有)! -
@AnkurParihar 是的,输入 id 是 myInput
-
@enhzflep 表格生成正确。截图:prntscr.com/sm8hdk
-
@Nick - 当然我可以看到表格显示正确。但是,从代码中确实可以看出它是无效的。这就是为什么 DevTools 的建议 - 它们让您更清楚地了解实际发生的事情。如果您的代码提供了数据,为它创建了一个表,然后搜索了一个已知存在的条目,我会尝试它。 :)
标签: javascript html search