我的if / else不能正常工作

时间:2015-07-28 17:22:01

标签: javascript if-statement

我的if if else不能正常工作。我有1 if 1 else if和1 else。当函数运行时,即使条件为" false"。

,它也会执行if

这是JavaScript:



function onSearch(){
	
	var site;
  
	document.getElementById('bar').value = site;
	
	//These are not the actuall links since it's not the actuall code.
  
    if (site === "Google" || "google"){
	
      location.href = "http://www.google.com";		

    }
	
  
  
	else if (site === "Youtube" || "youtube"){
	
      location.href = "http://www.youtube.com";
	
	}

  
  
	else{
	document.getElementById("SearchFail01").innerHTML =
	"The country " + site + " does not exist";
	}

<!-- Here is the HTML -->
  
<input type='search' id='bar' list='countries' placeholder='Search..'>

<p id="SearchFail01"></p>
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:3)

在Javascript中,条件语句中的字符串被视为True。 &#34; ||&#34;操作员不会按照您尝试使其工作的方式工作,因此您必须将其拼写出来。

if (site === "Google" || site === "google"){

  location.href = "http://www.google.com";      

}



else if (site === "Youtube" || site === "youtube"){

  location.href = "http://www.youtube.com";

}



else{
document.getElementById("SearchFail01").innerHTML =
"The country " + site + " does not exist";
}

编辑:

我也注意到这一行:

document.getElementById('bar').value = site;
如果您想将栏的值分配给网站

,则可能应该翻转

site = document.getElementById('bar').value;

答案 1 :(得分:1)

double pipe无法正常运作。这是它应该如何使用。

var foo = someVar || "foo";不得在if if that that

中使用

在您的情况下,您只需lowercase该网站并使用一个===

if (site.toLowerCase() === "google") {
    location.href = "http://www.google.com";        
}

答案 2 :(得分:1)

您可能还想考虑使用开关。

switch (site) {
    case "Google":
    case "google":
        location.href = "http://www.google.com";
        break;
    case "Youtube":
    case "youtube":
        location.href = "http://www.youtube.com";
        break;
    default:
        document.getElementById("SearchFail01").innerHTML = "The country " + site + " does not exist";
    break;
}

答案 3 :(得分:0)

如果你的 if endif 条件,我相信你有逻辑问题。

当您在JavaScript中有2个或更多条件时,请使用 OR (||)或 AND (&amp;&amp;)运算符分隔,每种情况下的比较。

而不是:

if (site === "Google" || "google"){

你必须写:

if (site === "Google" || site === "google"){

而不是:

else if (site === "Youtube" || "youtube"){

你必须写:

else if (site === "Youtube" || site === "youtube"){

希望这有用!

干杯队友!