我正在测试一行代码,它检查变量是否为空。如果它为空,则会弹出一个提示。但即使变量有问题,提示仍然会弹出。
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>
代码工作就在设置变量之后,在加载页面之前再次弹出提示。
答案 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语句为真。