我是编程的初学者。我找不到的问题是什么。当我改变号码。它没有按我的意愿工作。
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 :(得分:1)
<td id="price">
是一个表格单元格,因此您无法像在此处一样访问其value
var price = parseInt($('#price').val());
.val()
方法适用于input
,select
和textarea
元素,不是 td
元素。根据您的实际需要,您有几种选择。我建议使用.text
代替.val()
。
此外,请注意,只有在加载元素.keyup()
后才需要调用#num
。为了保证这一点,请使用$(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);
});
});
答案 1 :(得分:0)
尝试在$(document).ready()中包装事件函数,或在页脚区域中移动它们。
答案 2 :(得分:0)
这不会返回任何内容:
$('#price').val() // undefined
#price
是td
元素。 td
个元素没有值。但它确实有文字:
$('#price').text() // the value you echo from PHP