在 addEventListener 上获取“无法设置 null 属性”错误
2021-08-23
67
我有以下代码。我迭代地为 response.data[] 中找到的所有项目创建一个 div 元素。我还为每个项目创建一个复选框和一个文本框,并赋予它们一个等于“j”的 id。我在每个复选框上设置了一个 addEventListener。单击复选框后,它应该启用相应的文本框。但是,我得到的却是以下错误:“Uncaught TypeError:无法在 HTMLInputElement.eval 处将属性“disabled”设置为 null”。我遗漏了什么?
答案:此代码有效。我遇到了一个错误,已修复。我没有删除帖子,因为有一个答案。
for (let j = 0; j < size; j++) {
var jsres = response.data[j]
div = document.createElement('div')
div.className = 'sellDiv'
div.appendChild(document.createElement('br'))
div.appendChild(document.createTextNode('On Sale: '))
let checkbox = document.createElement('input')
checkbox.type = 'checkbox'
checkbox.setAttribute('id', j)
if (jsres.ForSale === true) {
checkbox.checked = true
} else {
checkbox.checked = false
}
checkbox.addEventListener('change', function () {
if (this.checked) {
document.getElementById('Price' + this.id).disabled = false
} else {
document.getElementById('Price' + this.id).disabled = true
}
})
div.appendChild(checkbox)
div.appendChild(document.createElement('br'))
div.appendChild(document.createTextNode('Sale Price: '))
let text = document.createElement('input')
text.setAttribute('id', 'Price' + j)
if (jsres.ForSale === true) {
text.disabled = false
} else {
text.disabled = true
}
text.setAttribute('value', jsres.Price)
div.appendChild(text)
div.appendChild(document.createElement('br'))
divArea.appendChild(div)
}
2个回答
检查该行,看看你是否在 html id 属性中使用了“ ” 如果使用,则表示在此处留出空间
checkbox.addEventListener('change', function () {
if (this.checked) {
document.getElementById('Price ' + this.id).disabled = false
} else {
document.getElementById('Price ' + this.id).disabled = true
}
})
Balaji Sivasakthi
2021-08-23
j
值为 0 至 size(数字)
这里为 id 选择器添加
Price
document.getElementById('Price' + this.id).disabled = false
rionalab
2021-08-23