我一直在寻找,但找不到任何答案!
我有以下代码,我正在查看#balance
是否为0,如果是,则应删除class="hidden"
if ($("#balance").length == 0) {
$("#Reset").removeClass("hidden")
}
<p>Place your bet! Balance: <b><span id="balance"></span>$</b></p>
这是展示问题的codepen。
答案 0 :(得分:0)
if ($("#balance").val() == '0') {
$("#Reset").removeClass("hidden");
}
答案 1 :(得分:0)
问题在于$("#balance").length
,您正在检查元素是否存在,而不是该元素的基础text
或html
。由于您的脚本代码无法移除范围&{39} balance
&#39;来自DOM
,因此表达式$("#balance").length == 0
永远不会是true
。您可能需要检查基础text
或html
是否符合您的要求。
if (!$("#balance").text().length) {
$("#Reset").removeClass("hidden")
}
答案 2 :(得分:0)
只需检查updateBalance()
功能。
function updateBalance(newBalance) {
localStorage.setItem('balance', newBalance);
balance = newBalance;
if (balance === 0) {
$('#Reset').removeClass('hidden');
}
}
更新了codepen。
首先,$('#balance').length
将始终返回1
,因为您的网页上有一个元素id="balance"
,因此您的if ($('#balance').length == 0)
语句永远不会成立。
您可以将其更改为if (parseInt($('#balance').html()) === 0)
,但这也无法解决您的问题,因为您的if
语句就在$(document).ready()
函数内部,所以它只被调用一次加载页面时,值为50。
要执行您要执行的操作,您必须在$('#balance')
范围发生变化时进行检测。但是,当您调用updateBalance()
函数时,您已经拥有了新的余额,因此只需检查该函数就更有意义了。