2015-12-05 140 views
-3

我想製作一款遊戲,在失去3次生命後遊戲結束。我代表的生命數我的HTML顯示元素的球員有:Javascript變量和HTML輸入元素

<input type="display" value="3" id="display"> 

,我有一個jQuery函數遞減值:

$('#display').val(parseInt($('#display').val()) - 1); 

如何將HTML輸入元素的值是存儲在一個變量?以下不工作:

var lives = parseInt('#display'); 
+4

你已經擁有了它:'VAR生活= $( '#顯示')VAL()'。或'var lives = parseInt($('#display')。val(),10)' - 後者不是必要的jQuery返回數字,如果數字 – mplungjan

+1

'display'不是有效的'輸入''類型' 。也可以通過用戶操作來改變「價值」? – guest271314

回答

1

要保存它,你需要使用.val()。因此,將其更改爲:

var lives = parseInt($('#display').val(), 10); 

而你需要調用下面的代碼:

$('#display').val(parseInt($('#display').val()) - 1); 
有事時

。說,onkeypressonmousemove

,改變你的<input />標籤的typetext,並給予readonly

<input type="text" value="3" id="display" readonly /> 
+0

我以爲parseInt需要一個字符串,我希望你的意思是它應該是'var lives = $('#display')。val()' –

+0

@sandeeps。完成。 –

+0

@sandeeps - parseInt需要你拋出的任何東西。包括一個數字。例如parseInt(10.5,10)將返回10 – mplungjan

0

嘗試存儲livesNumber,設置inputtype"text",在用戶操作遞減livesinput值設置爲lives。如果lives等於0,刪除事件或停止調用函數遞減lives變量

var lives = 3; 
 
$("#display").val(lives); 
 

 
$(document).click(function() { 
 
    $("#display").val(--lives); 
 
    // if `lives` is equal to `0` 
 
    if (!lives) { 
 
    $(this).off("click"); 
 
    $("div").html("Game over") 
 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> 
 
</script> 
 

 
<body> 
 
    <div>click</div> 
 
    <br> 
 
    <input type="text" value="" id="display" disabled="true"> 
 

 
</body>