当从菜单中选择值时,我有一些 ajax onclick 东西更新这一行:
<li id="li_273" data-pricefield="special" data-pricevalue="0" >
目的是获取该值 (data-pricevalue),然后将其乘以从另一个输入框输入的金额。这是我尝试实现这一目标的功能:
$('#main_body').delegate('#element_240','keyup', function(e){
var temp = $(this).attr("id").split('_');
var element_id = temp[1];
var price = $('#li_273').data("pricevalue");
var ordered = $(this).val();
var price_value = price * ordered;
price_value = parseFloat(price_value);
if(isNaN(price_value)){
price_value = 0;
}
$("#li_273").data("pricevalue",price_value);
calculate_total_payment();
});
除了我收到以下错误: 未捕获的类型错误:无法调用 null 的方法“数据”
我尝试从 getElementById 获取价格值的尝试似乎不正确。有什么建议吗?
更新:上面的代码已根据您的建议进行了编辑,感谢大家。它现在似乎运行良好。
最佳答案
这部分是错误的:
var price = document.getElementById('#li_273').data("pricevalue").val();
相反,您应该在此处一直使用 jQuery:
var price = $('#li_273').data("pricevalue");
顺便说一句,你不应该使用 .val()
因为.data()
已经返回一个字符串。 .val()
专用于输入元素,例如 <input>
和 <select>
仅举几例。
更新
此外,您的其余代码应如下所示:
var price_value = parseFloat(price);
if(isNaN(price_value)){
price_value = 0;
}
关于javascript - Jquery, ajax, javascript - 通过 id 获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13999508/