首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JavaScript「yz 未定義」錯誤排查:each 循環缺少閉合導致的函數解析失敗

     編輯:程式設計綜合問答

錯誤現象

頁面載入時控制台報錯:SCRIPT5009: “yz”未定義。HTML 中綁定 onblur="yz()",但 JS 中定義的 function yz(){ ... } 似乎未被識別。

根因分析

檢視 JS 代碼:

function yz(){
    var sumspje=0, sumspsl=0, i=0;
    $('input[name*=spsl]').each(function(){
        sumspje = $(this).val()*$(#[i]spdj).html();  // 此處選取器語法錯誤
        sumspsl = sumspsl+$(this).val();
        i++;
    }   // 缺少閉合 '});' 及函數結尾 '}'
    $("#sumje").val(sumspje);
    $("#sumsl").val(sumspsl);
}

each 回調函數缺少 });,導致 JavaScript 引擎解析函數體時語法錯誤,整個 yz 函數聲明失效,自然「未定義」。

修正代碼

function yz(){
    var sumspje=0, sumspsl=0, i=0;
    $('input[name*=spsl]').each(function(index){
        // 修正選取器:假設 spdj 元素 id 為 "0spdj", "1spdj"...
        var price = $('#' + index + 'spdj').html();
        sumspje += $(this).val() * price;
        sumspsl += Number($(this).val());
    }); // 補上 });
    $("#sumje").val(sumspje);
    $("#sumsl").val(sumspsl);
} // 補上 }

避坑指南

  • 使用 IDE(VS Code、WebStorm)自動縮進與括號匹配高亮,即時發現缺失。
  • 開發時開啟瀏覽器「暫停於捕獲的異常」,定位語法錯誤行。
  • 採用 ESLint 靜態檢查,CI 階段攔截此類低級錯誤。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved