我正在将用户输入与Array中的元素进行匹配。 “Index === lengthOfBoat”不输出“Works”,即使用户输入与数组中的数字匹配也是如此。如果我使用“>”符号,控制台输出“Works”。
认为这应该很简单。
我究竟做错了什么?
var lenghtOfBoat = [4, 5, 6, 7, 8, 9];
var inputBoatLenght = document.getElementById("boatLenght");
inputBoatLenght.addEventListener("change", function() {
var index = lenghtOfBoat.indexOf(inputBoatLenght);
if (index === lenghtOfBoat) {
console.log("Works");
}
else {
console.log("Nooo");
}
})
<!DOCTYPE html>
<html>
<head>
<title>Båd Dækning</title>
</head>
<body>
<input type="number" name="boatLenght" id="boatLenght" placeholder="Båd Længde">
<input type="number" name="boatHK" id="boatHK" placeholder="Båd HK">
<script type="text/javascript" src="script.js"></script>
</body>
</html>
BR马丁
getElementById为您提供HTMLElement,但您需要获取所选元素的值。然后该值将是一个字符串。因此,使用parseInt()或Number()转换为数字以将其与索引进行比较。
var lenghtOfBoat = [4, 5, 6, 7, 8, 9];
var inputBoatLenght = document.getElementById("boatLenght").value;
inputBoatLenght.addEventListener("change", function() {
var index = lenghtOfBoat.indexOf(parseInt(inputBoatLenght));
if (index === lenghtOfBoat) {
console.log("Works");
}
else {
console.log("Nooo");
}
})
<input type="number" name="boatLenght" id="boatLenght" placeholder="Båd Længde">
<input type="number" name="boatHK" id="boatHK" placeholder="Båd HK">
在这种情况下,您可以简单地使用includes
,它将返回boolean
值
if (lenghtOfBoat.includes(inputBoatLenght)) {
console.log("Works");
}
else {
console.log("Nooo");
}
你可以检查lenghtOfBoat.indexOf(+this.value) > -1
,并采取行动:
var lenghtOfBoat = [4, 5, 6, 7, 8, 9];
var inputBoatLenght = document.getElementById("boatLenght");
inputBoatLenght.addEventListener("change", function() {
if(lenghtOfBoat.indexOf(+this.value) > -1){
console.log("Works");
}else{
console.log("Nooo");
}
})
<input type="number" name="boatLenght" id="boatLenght">
您可以检查lengthOfBoat
数组是否包含inputBoatLength
。您需要将inputBoatLength
转换为数字,以检查它是否存在于数组中。
var lenghtOfBoat = [4, 5, 6, 7, 8, 9];
var inputBoatLenght = document.getElementById("boatLenght");
inputBoatLenght.addEventListener("change", function() {
var inp = +this.value;
if (lenghtOfBoat.includes(inp)) {
console.log("Works");
} else {
console.log("Nooo");
}
})