[英]Cannot read property length of undefined
我試圖簡單地檢查我是否有一個空的輸入文本框,但是當我在 Chrome 中運行它時出現此錯誤:
未捕獲的類型錯誤:無法讀取未定義的屬性“長度”。
這是我如何去做的。 我檢查 DOM 准備情況,然后調用該函數:
function walkmydog() {
//when the user starts entering
if(document.getElementById('WallSearch').value.length == 0) {
alert("nothing");
}
}
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", walkmydog, false);
}
輸入的 id 似乎不是WallSearch
。 也許你混淆了name
和id
。 它們是兩個不同的屬性。 name
用於定義發布值的名稱,而id
是 DOM 內元素的唯一標識。
其他可能性是您有兩個具有相同 id 的元素。 瀏覽器將選擇其中任何一個(可能是最后一個,也可能是第一個)並返回一個不支持value
屬性的元素。
也許,您可以先確定 DOM 是否真的存在,
function walkmydog() {
//when the user starts entering
var dom = document.getElementById('WallSearch');
if(dom == null){
alert('sorry, WallSearch DOM cannot be found');
return false;
}
if(dom.value.length == 0){
alert("nothing");
}
}
if (document.addEventListener){
document.addEventListener("DOMContentLoaded", walkmydog, false);
}
只是想通過另一個簡單的解決方案來解決這個問題。
if(dom?.length !== 0){
// Referred to as optional chaining
// this checks if the array is empty or if a value exists
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.