2015-04-02 156 views
0

我是一個編程的初學者。我找不到什麼問題。當我改變數字。它不是我想要的。jquery keyup()函數無法正常工作

HTML:

<tr> 
<td><?php echo $food ;?></td> 
<td id="price"><?php echo $price ;?></td> 
<td><input type="text" value="1" id="num"></td> 
<td id="total">50</td> 
<td><a href="#">X</a></td> 
</tr> 

的jQuery:

$('#num').keyup(function(){ 
    var price = parseInt($('#price').val()); 
    var num = parseInt($('#num').val()); 
    price = price * num; 
    $('#total').html(price); 
}); 
+0

''​​沒有價值 - >'$( '#價')VAL()',你想用'的.text()' - >' var price = parseInt($('#price')。text());' – Sean 2015-04-02 01:38:16

+0

發現任何錯誤 – Ghostman 2015-04-02 01:38:34

回答

0

嘗試換你的事件函數在$(document).ready(),或頁腳區域移動它們。

+0

這只是問題的一部分。 – 2015-04-02 01:38:09

+0

問題中沒有任何證據表明這是一個問題。如果OP的JavaScript是在該標記之後,這不會有什麼區別。 – David 2015-04-02 01:39:40

+0

非常感謝。問題解決了:) – 2015-04-02 01:40:51

0

這將不會返回任何東西:

$('#price').val() // undefined 

#pricetd元素。 td元素沒有值。它,然而,有文字:

$('#price').text() // the value you echo from PHP 
+0

感謝您的幫助。我知道了。 – 2015-04-02 01:44:14

1

<td id="price">是一個表格單元格,因此,當你正試圖在這裏做

var price = parseInt($('#price').val()); 

.val()方法用於input你不能訪問其valueselecttextarea元素,而不是td元素。根據你實際想要做的事情,你有幾個選擇。我建議使用.text而不是.val()

此外,請注意,只有在加載了元素#num後,才需要撥打.keyup()。爲了保證這一點,請使用$(document).ready()。全javascript代碼如下:。

$(document).ready(function(){ 
    $('#num').keyup(function(){ 
     var price = parseInt($('#price').text()); 
     var num = parseInt($('#num').val()); 
     price = price * num; 
     $('#total').html(price); 
    }); 
}); 
+0

謝謝您提供的信息答案。我知道了。我的問題解決了:-) – 2015-04-02 01:47:36

+0

耶!很高興幫助:) – 2015-04-02 03:12:12