无法读取未定义的属性'textContent'
我有那个错误,我现在不明白为什么
我是一个初学者,所以也许这是我不理解的非常简单的事情
function price() {
var table, tr, td, input;
table = document.getElementById("myTable");
tr = table.getElementsByTagName("tr");
input = document.getElementById("myInput1");
for (let i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[2];
if ( parseInt(td.textContent) > parseInt(input.value)) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}
}
}
实际上,我想在表中隐藏其值大于用户编写的值的行
这是基本的HTML:
<body>
<input type="text" class="fa fa-search" id="myInput1" onkeyup="price()" placeholder="Prix max" title="Ecrivez un prix">
<table id="myTable">
<tr>
<th>Name</th>
<th>Country</th>
<th>Price</th>
</tr>
<template id="listeDestinations">
<tr>
<td>{{pays}}</td>
<td>{{ville}}</td>
<td>{{price}}</td>
</tr>
</template>
</table>
<script src="../javascript/accueil.js"></script>
<script src="../javascript/Destinations.js"></script>
</body>
感谢您的帮助
答案 0 :(得分:0)
此行 tr = table.getElementsByTagName(“ tr”); 将检索HTML页面中的所有 tr ,并且您有 2 tr 标记
此后,您执行 for循环,并在 for循环中的第一个迭代器中,您将捕获第一个 tr ,然后您将获取此 tr tr [i] .getElementsByTagName(“ td”)[2];
中的所有 td但是您的第一个 tr 没有任何 td ,它具有 th ,因为该行 td = tr [i ] .getElementsByTagName(“ td”)[2]; 将返回未定义