if(td)
条件在这做什么?编写此代码以搜索表中的行。
var input
是搜索框,var table
是表格。
function myFunction() {
// this function filters the table using search box
var input, filter, table, tr, td, i;
input = document.getElementById("myInput"); // the search box
filter = input.value.toUpperCase();
table = document.getElementById("myTable"); // the table
tr = table.getElementsByTagName("tr"); // the row of table
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[0];
if (td) { // why do we need this condition here?
if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}
}
}
}
答案 0 :(得分:2)
代码if (td)
检查以确保td中有某些内容并且它是真实的,以便下一行在查找td.innerHTML
时不会抛出错误。
答案 1 :(得分:2)
td
包含该行的数据,您将数据与某些过滤器进行匹配。现在,如果td
不存在,您将收到错误undefined
答案 2 :(得分:1)
Element.getElementsByTagName()方法返回具有给定标记名称的元素的实时HTMLCollection。
结果是找到元素的实时HTMLCollection,它们出现在子树中。如果没有找到任何元素,(在您的情况下,如果内部没有<tr>
的{{1}}),则HTMLCollection为空。
如果现在你得到一个空的HTMLCollection,那么你调用下一行的innerHTML方法将导致以下错误,你的代码将会中断。
“TypeError:td未定义”