我编写了一些普通的JS,以便根据其中一个字段的值隐藏/显示一些div.
我的问题是,虽然适当地隐藏它们在默认情况下是有效的,但试图使它们再次出现时,我遇到了问题,因为使用getElementByID会返回空值.
我在谷歌上搜索并找到了许多类似代码工作过的例子,但我想不出为什么我的代码不能真正工作.
我写的JS如下:
var hidden = false
document.addEventListener("keypress", function(event) {
if (event.key == '`') {
if (hidden == false) {
resultEntries = document.getElementsByClassName('result-row');
for (i = 0; i < resultEntries.length + 1; i++) {
var x = document.getElementById('root_cause_' + i)
if (x != null) {
var value = x.options[x.selectedIndex].value;
console.log('value' + value)
if (value == '') {
row = document.getElementById('line_' + i)
row.style.display = 'none';
}
}
}
hidden = true
} else {
resultEntries = document.getElementsByClassName('result-row');
for (i = 0; i < resultEntries.length + 1; i++) {
row = document.getElementById('line_' + i) // This is what is returning null
console.log(row)
row.style.display = 'block';
}
hidden = false
}
}
});