2015-04-02 183 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