我不知道为什么我的其他声明不起作用。
这是我第一次真正发生,我使用console.log()
进行了检查。
这是我的代码:
setTimeout(function() {
var b = 2;
var d = 80000;
if ("div[class='resultInfo resultLose']") {
setTimeout(function() {
var a = ($("input[name='_4']").val().replace(/\s+/g, ''));
var c = a * b;
$("input[name='_4']").val(c);
$("input[value='Play!']").click();
}, 1000);
} else if ("div[class='resultInfo resultWin']") {
setTimeout(function() {
$("input[name='_4']").val(d);
$("input[value='Play!']").click();
}, 1000);
}
}, 4500);
我试过:
setTimeout
if
if ("div[class='resultInfo resultWin']")
”即使if
为elseif
,也只使用第一个true
,我不知道该怎么做。
答案 0 :(得分:2)
if条件中有一个非空字符串,每次都会计算为true。所以永远不会达到阻止。
答案 1 :(得分:2)
您当前的if和else / if条件只是测试随机字符串的真实性,该字符串将始终评估为true。由于第一个条件的计算结果为true,因此您将始终跳过else if条件(即使在此实例中也会评估为true)。
您实际上想要测试的是,是否存在与作为选择器字符串的字符串匹配的元素。如果是这种情况,那么最简单的解决方法是将if和else语句更改为更像jQuery语句并检查结果的长度。
if ($("div[class='resultInfo resultLose']").length > 0)
和
else if ($("div[class='resultInfo resultWin']").length > 0)
答案 2 :(得分:1)
您的代码没有意义。
您没有输入else if
,因为您的if
将始终评估为true
。
if ("div[class='resultInfo resultLose']")
将始终为true
,因为您没有进行任何比较,而是在评估字符串。这与做if (true)
一样。
我想你在那里缺少一些代码,比如JQuery选择或类似的东西。