You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

跟随教程做简易存值网站遇报错,代码与Git仓库一致仍无法解决

问题分析与解决

核心错误1:按钮元素获取失败

HTML中按钮使用的是class="input-btn",但JS里用getElementById("input-btn")获取,两者不匹配,导致inputBtn为null,无法添加点击事件监听,这是报错的直接原因。

修改HTML按钮代码:

<button id="input-btn">SAVE INPUT</button>

核心错误2:列表渲染时机错误

当前for循环在页面加载时执行,此时myLeads是空数组,不会生成任何列表项。需要把列表渲染逻辑放到按钮点击事件内部,每次添加新内容后重新渲染列表,同时建议先清空列表内容避免重复渲染。

修改JS代码:

let myLeads = []
const inputEl = document.getElementById("input-el")
const inputBtn = document.getElementById("input-btn")
const ulEl = document.getElementById("ul-el")

inputBtn.addEventListener("click", function(){
    myLeads.push(inputEl.value)
    inputEl.value = "" // 清空输入框,提升体验
    renderLeads()
})

function renderLeads() {
    let listItems = ""
    for (let i = 0; i < myLeads.length; i++) {
        listItems += "<li>" + myLeads[i] + "</li>"
    }
    ulEl.innerHTML = listItems
}

完整修正代码

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="ChromeEx.css">
</head>
<body>
   <input type="text" id="input-el">
    <button id="input-btn">SAVE INPUT</button>
    <ul id="ul-el"></ul>
    <script src="ChromeEx.js" defer></script>
</body>
</html>

CSS(仅规范一处写法,不影响功能)

body{
    margin: 0;
    padding: 10px;
    font-family: Arial, Helvetica, sans-serif;
}
input{
    height: 50px;
    width: 100%;
    border: 1px solid green;
    margin-top: 10px;
    margin-bottom: 10px;
    padding-left: 10px;
    padding-right: 10px;
    box-sizing: border-box;
}
button{
    background-color: green;
    color: antiquewhite;
    height: 50px;
    width: 150px;
    border: 0; /* 替换原写法border:0ch,更规范 */
    border-radius: 10px;
}

JavaScript

let myLeads = []
const inputEl = document.getElementById("input-el")
const inputBtn = document.getElementById("input-btn")
const ulEl = document.getElementById("ul-el")

inputBtn.addEventListener("click", function(){
    myLeads.push(inputEl.value)
    inputEl.value = ""
    renderLeads()
})

// 封装渲染函数,代码更模块化
function renderLeads() {
    let listContent = ""
    // 用for...of循环更简洁
    for (let lead of myLeads) {
        listContent += `<li>${lead}</li>`
    }
    ulEl.innerHTML = listContent
}

内容的提问来源于stack exchange,提问作者Spa4k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 05:01:24