2016-02-23 42 views
0

我一直在尋找,但找不到任何答案!如何刪除值爲0時的類

我有下面的代碼,在那裏我期待,如果#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
if ($("#balance").val() == '0') { 
    $("#Reset").removeClass("hidden"); 
} 
+0

也沒有工作嗎? :/ – unscope

+0

編輯,作品。我在你的片段上測試過:) –

+0

有線,它仍然沒有刪除隱藏的類爲我? :3 – unscope

0

的問題是,與$("#balance").length,正在檢查的元素是否存在,而不是基本的text或元素的html。由於您的腳本代碼不會從DOM中刪除範圍「balance」,因此表達式$("#balance").length == 0永遠不會是true。您可能需要檢查底層的texthtml以符合您的要求。

if (!$("#balance").text().length) { 
     $("#Reset").removeClass("hidden") 
    } 
+0

那仍​​然沒有工作?試試看我的http://codepen.io/anon/pen/jWgwee – unscope

+0

看看這個。你會知道我想說什麼:https://jsfiddle.net/aadu8jou/5/ – DinoMyte

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()函數時,您已經擁有了新的餘額,因此只需執行該函數中的檢查就更有意義。