javascript - Js在html中显示的问题
问题描述
我有一个问题,JS 没有改变第三个函数中的 HTML 谁能告诉我为什么或者告诉我如何改变这个代码来工作?
function chosen() {
var x = document.getElementById("a").value;
if(x == 1) {
document.getElementById("aa").innerHTML = "Acura years arent available right now";
document.getElementById("ab").innerHTML = "";
} else if(x == 3) {
document.getElementById("aa").innerHTML = "<div class='input-group mb-3'><div class='input-group-prepend'><label class='input-group-text' for='inputGroupSelect01'>Year</label></div><select class='custom-select' id='b' id='inputGroupSelect01' oninput='Year()'><option selected disabled>Year</option><option value='1'>1987</option></select></div>";
}
}
function Year() {
var y = document.getElementById("b").value;
var x = document.getElementById("a").value;
if(y == 1) {
if(x == 3) {
document.getElementById("ab").innerHTML = "<div class='input-group mb-3'><div class='input-group-prepend'><label class='input-group-text' for='inputGroupSelect01'>Class</label></div><select class='custom-select' id='c' id='inputGroupSelect01' oninput='l()'><option disabled selected>Select a class</option><option value='1'>190D</option></select></div>";
} else if(x == 1) {
document.getElementById("ab").innerHTML = "Unavailable";
}
}}
function l() {
var z = document.getElementById("c").value;
var y = document.getElementbyId("b").value;
var x = document.getElementbyId("a").value;
if (x === 3 && y === 1 && z === 1) {
document.getElementById("ac").innerHTML = "input schematics here";
}
}
<div class="input-group mb-3">
<div class="input-group-prepend">
<label class="input-group-text" for="inputGroupSelect01">Brand</label>
</div>
<select class="custom-select" id="a" id="inputGroupSelect01" oninput="chosen()">
<option selected disabled>Select Brand of car</option>
<option value="1">Acura</option>
<option disabled value="2">Alfa Romeo</option>
<option value="3">Mercedes Benz</option>
<option value="4">Toyota</option>
<option value="5">Lexus</option>
<option disabled value="6">Volvo</option>
<option value="7">Fiat</option>
<option disabled value="8">Porsche</option>
<option value="9">BMW</option>
<option disabled>options are limited b/c Im Lazy lol</option>
</select></div><h6 id="aa"></h6><h6 id="ab"></h6><h6 id="ac"></h6>
旁注:我使用的是Bootstrap 4.0 你也可以在这个网页 Bigbn.oyosite.com 中了解它是如何工作的
解决方案
您的代码中有 3 个问题:
- 为什么在第三个函数中写 === 而不是 == ?x、y 和 z 是字符串,因此需要进行类型转换。请使用 == 而不是 ===。请阅读本文以了解 === 和 == 之间的区别:JavaScript 比较中应该使用哪个等号运算符(== vs ===)?
- 您在 1 个元素中使用了 2 个 ID,这将起作用,但它不正确。
- 您可以通过浏览器开发工具找到主要问题。当它开始运行 function 时
l()
,它会出错。你写这个是为了x
和y
var y = document.getElementbyId("b").value; //It errors getElementbyId is not a function because you used lower case b in by
var x = document.getElementbyId("a").value;
您使用了 getElement by Id 而不是 getElement By Id
总之,如果您更改by
为By
和,您的代码===
将起作用==
。但是使用 2 个 id 也是不正确的,但它不会产生任何错误,但最好改变它。希望这对您有所帮助。
推荐阅读
- c# - C#:从数组中删除许多元素
- excel-2010 - 使用 excel 和 Visual Basic 每十秒计数一次
- python - Django 身份验证流程如何工作?【特例】
- node.js - find() 方法不适用于猫鼬中的异步函数
- java - JTable排序和渲染
- openvpn - 如何进行第 2 层 OpenVPN 站点到站点设置
- list - Prolog - 将列表保存到类似原子的东西中?
- c++ - 为什么 std::function 没有进行类型检查?
- c# - 如果“错误 CS1628:无法在匿名方法、lambda 或查询表达式中使用 in ref 或 out 参数”,如何在线程中使用 ref 参数?
- r - 如何修复 if (nchar(text.matrix[r, c]) > max.length[real.c]) { 中的错误:缺少 TRUE/FALSE 需要错误的值?