我不是一个专业的程序员,我有一个问题,可能有一个非常简单的修复。
到目前为止,这是我的代码。这是非常基本的。我试图从html输入中获取代码,并使用它来执行javascript。例如,如果一个人在输入中输入“氢”,我想让它把他们带到氢页面,但是如果他们输入“氦”,我想把他们带到氦页面。这是我写的代码,但是每次我试一次,不管我输入什么,它都会带我到氦页。有人能帮我解决这个问题吗。谢谢
<body>
<input id="search" placeholder="Search for an element">
<button>Search</button>
</body>
<script type="text/javascript">
document.querySelector("button").addEventListener("click", function() {
if (document.getElementById('search').value === 'Hydrogen'||'H'||'1') {
window.location.href='./elements/hydrogen.html'
}
if (document.getElementById('search').value === 'Helium'||'He'||'2'){
window.location.href='./elements/helium.html'
}
})
</script>发布于 2021-09-20 21:10:09
因为任何非空字符串都是特鲁西在JavaScript中。所以像这样的情况永远是true
document.getElementById('search').value === 'Hydrogen'||'H'||'1'因为'H'是一个非空字符串,被解释为"true“。
编程语言不是依赖于人类直觉的自然人类语言,编程语言中的一切都必须使用明确的逻辑来明确定义。所以你的条件应该是:
document.getElementById('search').value === 'Hydrogen' ||
document.getElementById('search').value === 'H' ||
document.getElementById('search').value === '1'也就是说,对每个条件进行充分和独立的测试,并对结果进行逻辑||操作符的测试。
当然,你可以用多种方式缩短这个时间。例如:
['Hydrogen', 'H', '1'].includes(document.getElementById('search').value)发布于 2021-09-20 21:16:36
这边请
const
button = document.querySelector('button')
, search = document.getElementById('search')
;
button.onclick = e =>
{
if (['Hydrogen','H','1'].includes( search.value ))
window.location.href='./elements/hydrogen.html'
if (['Helium','He','2'].includes( search.value ))
window.location.href='./elements/helium.html'
} <input id="search" placeholder="Search for an element">
<button>Search</button>
https://stackoverflow.com/questions/69260778
复制相似问题