javascript - Jquery, ajax, javascript - 通过 id 获取元素

标签 javascript jquery

当从菜单中选择值时,我有一些 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/

相关文章:

javascript - "virtual"dom 操作?

jQuery 将表单数据转移到新页面

javascript - HTML - CSS 样式 : Having separate colored elements on the same line

javascript - 在解决服务方法上的 promise 之前,它会转到主方法的 promise

javascript - 来自 Json 文件的 Backbone 集合和本地存储上的缓存

javascript - Youtube Iframe : onYouTubePlayerAPIReady() not called

javascript - 单击它时菜单会出现(在移动 View 中)

javascript - 成功后如何关闭jquery弹出框?

javascript - 修改 JQuery 代码 CSS 选中

javascript - 在提交表单上打开模式 Bootstrap