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

使用JavaScript操作div元素实现航班计数与点击改背景功能问题排查

代码问题修复方案

1. counter()计数异常修复

原函数错误将航班信息文本内容转为数字累加,而航班总数等于所有带printing类的元素个数,直接取元素集合长度即可:

function counter(){
    const flightList = document.getElementsByClassName("printing");
    document.getElementById("total").innerHTML = flightList.length;
}

2. Accept按钮改背景功能修复

原函数存在3处错误:未接收传入的按钮元素参数、未正确定位对应航班div、背景属性与颜色值写法不规范,修复后代码:

function changeColor(btn){
    // 按钮的直接父元素就是对应航班的div
    btn.parentElement.style.backgroundColor = 'green';
}

额外HTML笔误修正

原HTML中存在非法标签<divи>,修改为标准<div>即可。


完整可运行代码示例

JavaScript部分

function addRow(){
    const name = document.getElementById("name");
    const plainNum = document.getElementById("plainNum");
    const coordinates = document.getElementById("coordinates");
    const radius = document.getElementById("radius");
    const altitude = document.getElementById("altitude");
    const type = document.getElementById("type");
    if(!name.value || !plainNum.value || !coordinates.value || !radius.value || !altitude.value || !type.value){
        alert("Enter all values");
        return;
    }
    const output = document.getElementById("output");
    const divForOutput = document.createElement("DIV");
    const btn1 = document.createElement("BUTTON");
    const btn2 = document.createElement("BUTTON");
    const t1 = document.createTextNode("Accept");
    const t2 = document.createTextNode("Reject");
    btn1.appendChild(t1);
    btn2.appendChild(t2);
    divForOutput.innerHTML += name.value +", " + plainNum.value +"<br>" + "Radius: " + radius.value +", "+"Altitude: "+altitude.value+"<br>"+type.value+"<br>";
    divForOutput.appendChild(btn1);
    divForOutput.appendChild(btn2);
    divForOutput.setAttribute('class','printing');
    output.appendChild(divForOutput);
    btn1.setAttribute('onclick','changeColor(this);');
    btn2.setAttribute('onclick','disableButtons()');
    // 可选:提交后清空表单
    name.value = "";
    plainNum.value = "";
    coordinates.value = "";
    radius.value = "";
    altitude.value = "";
    counter();
}
function disableButtons(){}
function changeColor(btn){
    btn.parentElement.style.backgroundColor = 'green';
}
function counter(){
    const flightList = document.getElementsByClassName("printing");
    document.getElementById("total").innerHTML = flightList.length;
}

HTML部分

<h1>Register flight</h1>
<form>
    <div>
        <label>Name and surname</label>
        <input type="text" id="name">
    </div>
    <div>
        <label>Number plate</label>
        <input type="text" id="plainNum">
    </div>
    <div>
        <label>Coordinates</label>
        <input type="text" id="coordinates">
    </div>
    <div>
        <label>Radius</label>
        <input type="text" id="radius">
    </div>
    <div>
        <label>Altitude</label>
        <input type="text" id="altitude">
    </div>
    <div>
        <label>Type</label>
        <select id="type">
            <option value="Comercial">Comercial</option>
            <option value="Buissines">Buissines</option>
        </select>
    </div>
    <div>
        <input type="button" value="Submit" onclick="addRow();">
    </div>
</form>
<div>
    <h3>Registered flights</h3>
    <p>Total:<span id="total">0</span></p>
</div>
<div id="output"></div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:36:09