对你来说没问题,但为什么这在我的Javascript文档中不起作用?
<script>
prompt("Are you ok?");
if ("no".length > 3) {
window.location.href = "http://google.com";
} else {
window.location.href = "http://facebook.com";
}
</script>
问题在于,即使我输入的内容比“不”更大(也更小),我也会选择Google。我刚刚开始使用JS,并认为如果我可以将它添加到我的网站上会很酷。
答案 0 :(得分:9)
您没有使用提示返回的值。
<script>
var response = prompt("Are you ok?");
if (response.length > 3) {
window.location.href = "http://google.com";
} else {
window.location.href = "http://facebook.com";
}
</script>
如果您执行"no".length
,它只会返回字符串"no"
的长度,即2。这就是为什么您的情况总是会导致Google的原因。
相反,您可以获取提示返回的值,并检查其长度。更好的是,您可以直接检查特定的字符串。
var response = prompt("Are you ok?");
if (response === "no") {
window.location.href = "http://google.com";
} else {
window.location.href = "http://facebook.com";
}
答案 1 :(得分:0)
您正在检查恒定长度是否大于其实际长度,从而导致不可能的组合。
console.log("no".length) // you'll get always 2
console.log("no".length > 2) // always false
你应该这样做的方式(我喜欢单行)
window.location.href = ('no' === window.prompt('Are you ok?')) ? 'http://google.com' : 'http://facebook.com';
在浏览器中处理Yes-No答案的另一种可靠方法:
window.location.href = window.confirm('Go to Google?') ? 'http://google.com' : 'http://facebook.com';