Jquery keyup()函数无法正常工作

时间:2015-04-02 01:30:56

标签: javascript php jquery

我是编程的初学者。我找不到的问题是什么。当我改变号码。它没有按我的意愿工作。

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);
});

3 个答案:

答案 0 :(得分:1)

<td id="price">是一个表格单元格,因此您无法像在此处一样访问其value

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

.val()方法适用于inputselecttextarea元素,不是 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

#pricetd元素。 td个元素没有值。但它确实有文字:

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