【发布时间】:2021-01-07 23:00:00
【问题描述】:
我正在开发一个 JS 项目,该项目创建 3 辆汽车,每辆汽车下方有 2 个按钮。一键显示汽车信息,一键清除信息。我似乎无法让清除按钮工作。我尝试了各种各样的事情,我觉得这很简单。请帮忙,这是我的代码:
<div id= "container">
<div class="row">
<div class="column">
<img src="images/Porsche.jpg">
<button onclick="display1()" id="submit1">See Details</button>
<button onclick="clear()" value="reset" id="clear">Clear Selection</button>
</div>
<div class="column">
<img src="images/Ferrari.jpg">
<button onclick="display2()" id="submit2">See Details</button>
<button onclick="clear2()" id="clear">Clear Selection</button>
</div>
<div class="column">
<img src="images/Lambo.jpg">
<button onclick="display3()" id="submit3">See Details</button>
<button onclick="clear3()" id="clear">Clear Selection</button>
</div>
</div>
</div>
var porsche = {
make: "Porsche",
model: "Panarama",
year: 2020,
available: true,
description: "The Porsche Panamera is an excellent super luxury car."
}
function display1() {
var place = document.getElementById("submit1");
for (value in porsche) {
place.innerHTML = "Make: " + porsche.make + "<br>" +
"Model: " + porsche.model + "<br>" +
"Year: " + porsche.year + "<br>" +
"Available: " + porsche.available + "<br>" +
"About: " + porsche.description;
}
};
var ferrari = {
make: "Ferrari",
model: "Panarama",
year: 2020,
available: true,
description: "Ranks near the top of super luxury cars, with a strong engine, well-balanced handling, and comfortable interior."
}
function display2() {
var place = document.getElementById("submit2");
for (value in ferrari) {
place.innerHTML = "Make: " + ferrari.make + "<br>" +
"Model: " + ferrari.model + "<br>" +
"Year: " + ferrari.year + "<br>" +
"Available: " + ferrari.available + "<br>" +
"About: " + ferrari.description;
}
};
var lambo = {
make: "Lamborghini",
model: "Huracan",
year: 2021,
available: true,
description: "Exceptionally comfortable ride and stunning performance."
}
function display3() {
var place = document.getElementById("submit3");
for (value in lambo) {
place.innerHTML = "Make: " + lambo.make + "<br>" +
"Model: " + lambo.model + "<br>" +
"Year: " + lambo.year + "<br>" +
"Available: " + lambo.available + "<br>" +
"About: " + lambo.description;
}
};
function clear() {
document.getElementById(".row").reset();
}
【问题讨论】:
-
第一件事:重构你的代码。复制/粘贴使编辑变得困难(您必须检查每个复制的 sn-p)。编写一次你的函数,并给它参数,这样你就可以用同一个函数显示不同的东西
-
我只看到一个
clear()方法。其他 clear 方法未定义。我完全同意 blex,但只是指出来。不做方法当然不行。 -
因为我正在努力学习。我真的不明白你想说什么。显示汽车信息的按钮在我单击时有效,但我不知道如何编写清除按钮以删除信息。
-
重构我的代码是什么意思?
-
.reset()仅适用于表单。您正在覆盖按钮的.innerHTML,我不建议这样做......但function clear(){ place document.getElementById('submit1').innerHTML = 'See Details'; }会将其中一个放回去。顺便说一下,每个窗口只允许一个唯一的 HTML id 属性值。
标签: javascript html arrays visual-studio