繁体   English   中英

使用Jquery从表单值求和json中特定键的值

[英]Use Jquery to sum values of a specific key in json from a form value

我有一个构造json对象并将其分配给表单文本元素的脚本,如下所示:

<input id="clientList" type="hidden" value="[{"clientID":"1","clientType":"0","clientPrice":"450.00","tourID":"9","insuranceAvailable":"0"},{"clientID":"2","clientType":"2","clientPrice":"0.00","tourID":"9","insuranceAvailable":"0"}]">

我需要(使用Jquery或JS),总结该字符串中的所有clientPrice键。

我正在尝试的代码是:

var totalRoomPrices = 0;

var travellerPricesToSum = JSON.stringify($('#clientList').serializeArray());

$.each(travellerPricesToSum, function () {
     totalRoomPrices += this.clientPrice;
});

console.log(totalRoomPrices);

谁能提供一些有关我做错了什么以及如何解决此问题的见解?

谢谢

您需要解析该value因为它是json的字符串表示形式。 JSON.stringify会将object转换为string ,此处不是这种情况。 另请注意, "包裹在里面的字符串"会破坏字符串,请转义它们,或使用'里面" ,反之亦然。

因为值是strings ,所以+=会匹配它们。 要使加法有效(考虑浮动值),请使用parseFloat将其转换为float

尝试这个:

 var totalRoomPrices = 0; var travellerPricesToSum = JSON.parse($('#clientList').val()); $.each(travellerPricesToSum, function() { totalRoomPrices += parseFloat(this.clientPrice); }); alert(totalRoomPrices); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <input id="clientList" type="hidden" value='[{"clientID":"1","clientType":"0","clientPrice":"450.00","tourID":"9","insuranceAvailable":"0"},{"clientID":"2","clientType":"2","clientPrice":"0.00","tourID":"9","insuranceAvailable":"0"}]'> 

您不能在value属性中使用相同样式的引号。 您将不得不找到另一种在value属性内的字符串中对结构化数据进行编码的方法,我见过人们在使用| 和:字符作为分隔符,显然您将必须使用str.split()编写自己的解析器。

编辑:显然,如果按照其他答案混合使用单引号和双引号,则也可以选择保留整个JSON字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM