javascript - 为什么这个if语句不起作用?

时间:2017-10-21 03:10:25

标签: javascript html

我正在测试一行代码,它检查变量是否为空。如果它为空,则会弹出一个提示。但即使变量有问题,提示仍然会弹出。

function myFunction(){
 
 if (site == null || variable == undefined) { 
  var site = prompt("Please enter a valid url:", "http://");
  document.cookie = 'Your bookmark is: '+ site;
  alert(unescape(document.cookie));
	document.getElementById("p1").innerHTML = '<a class="txt2" href="' + site + '" target="myframe">'   + site + '</a>';
 }
 
 else { 
  alert('yey its working');
 }
}
<a class="txt2" id="p1" onclick="myFunction()">Button</a>

代码工作就在设置变量之后,在加载页面之前再次弹出提示。

2 个答案:

答案 0 :(得分:1)

因为变量未定义(我们没有在任何地方设置),if块总是运行。

此外,如果 site 变量似乎在myFunction的范围内定义 -

  

在JavaScript函数中声明的变量,变为LOCAL   功能

理想的方法是检查document.cookie而不是变量 -

    function myFunction(){

 if (  document.cookie == '') { 
  var site = prompt("Please enter a valid url:", "http://");
  document.cookie = 'Your bookmark is: '+ site;
  alert(unescape(document.cookie));
    document.getElementById("p1").innerHTML = '<a class="txt2" href="' + site + '" target="myframe">'   + site + '</a>';
 }

 else { 
  alert('yey its working');
 }
}

myFunction();

检查它是否在JSFiddle

中工作

答案 1 :(得分:0)

if语句计算两个变量,只有一个必须为true才能使if语句为真。