我在JS中添加了一个搜索系统到我的网站,但它出了问题。当“音乐”这个词是搜索栏中的文本时,我做了一个if语句来打开我网站上的另一个文件。我还做了另一个if语句,在搜索youtube时打开youtube.com。但是,当我搜索youtube时,它会打开搜索是音乐时要打开的文件。没有错误。这是if语句的JS代码和搜索栏的HTML代码:
<script>
function Searchprocessor() {
if(hfrrfsunehdsurhmurh == "music" || "MUSIC" || "Music" ){
window.location.replace("search_results/search_music.html");
}
else if(hfrrfsunehdsurhmurh == "Youtube" || "YOUTUBE" || "youtube" || "YouTube"){
window.location.replace("https://www.youtube.com");
}
}
</script>
<img style="position:absolute; top:0px; right:670px;" src ="images/t.png" height="100">
<input type="text" id="hfrrfsunehdsurhmurh" style="position:absolute; top:110px; right:650px;" placeholder="Search something">请帮我把它修好。
发布于 2020-12-30 22:14:22
您必须始终重复要比较的变量:
if(hfrrfsunehdsurhmurh === "music" || hfrrfsunehdsurhmurh === "MUSIC" || hfrrfsunehdsurhmurh === "Music" ){
window.location.replace("search_results/search_music.html");
}else if(hfrrfsunehdsurhmurh === "Youtube" || hfrrfsunehdsurhmurh === "YOUTUBE" || hfrrfsunehdsurhmurh === "youtube" || hfrrfsunehdsurhmurh === "YouTube"){
window.location.replace("https://www.youtube.com");
}如何建议@Ian为了最小化和加速代码,最好将代码全部小写/大写:
if(hfrrfsunehdsurhmurh.toLowerCase() === "music"){
window.location.replace("search_results/search_music.html");
}else if(hfrrfsunehdsurhmurh.toLowerCase() === "youtube"){
window.location.replace("https://www.youtube.com");
}发布于 2020-12-30 22:21:10
除了@Simone之外的另一种解决方案是检查数组是否包含变量值
if( ["music","MUSIC","Music"].includes(hfrrfsunehdsurhmurh) ){
window.location.replace("search_results/search_music.html");
}else if( ["Youtube","YOUTUBE","youtube","YouTube"].includes(hfrrfsunehdsurhmurh) ){
window.location.replace("https://www.youtube.com");
}https://stackoverflow.com/questions/65508342
复制相似问题