var data = "needactivation:9";
if (data.indexOf(":") == true) {
replyData = data.split(":");
if (replyData[0] == "needactivation") {
alert("User Id Is " + replyData[1]);
}
}
else if (data == "success") {
window.location.href = "/";
}
else {
alert("Unknown error.");
}
是我的JavaScript。它应该警告用户ID,但它会产生未知错误。这个脚本有什么问题吗?
不确定这部分是否重要,但我也在页面上使用最新的jQuery。
答案 0 :(得分:5)
indexOf
返回一个索引(如果找不到则返回-1
),而不是布尔值。改变这个:
if (data.indexOf(":") == true) {
对此:
if (data.indexOf(":") !== -1) {
或者,你可以split
,然后检查replyData.length
。
答案 1 :(得分:2)
String.indexOf()
会返回一个数字> = 0,而不是布尔值true
您的测试应为:
if (data.indexOf(":") >= 0) {
...
}
答案 2 :(得分:1)
var data = "needactivation:9";
if (data.indexOf(":") >= 0) {
replyData = data.split(":");
if (replyData[0] == "needactivation") {
alert("User Id Is " + replyData[1]);
}
}
else if (data == "success") {
window.location.href = "/";
}
else {
alert("Unknown error.");
}
答案 3 :(得分:0)
尝试if (data.indexOf(":") != -1) {
答案 4 :(得分:0)
除了验证上述答案是否正确之外,我只是想说,在您将true
更改为-1
后,您可能还想使用某种尝试/捕捉逻辑因为像Anything:
这样的字符串会有一个indexOf(":") >= 0
,但会以这样的方式分割,以至于您对replyData[1]
的引用会引发另一个错误。