Javascript Jquery无法跳过对第一个json结果的求值
我想计算一组JSON结果,但不知何故总是跳过第一个结果。我的Jquery代码如下:Javascript Jquery无法跳过对第一个json结果的求值,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我想计算一组JSON结果,但不知何故总是跳过第一个结果。我的Jquery代码如下: function check_product_cash_discount(total_id){ //check for cash discount $.ajax({ url:siteurl+"checkout/get_cash_discount_ajax/", type:"POST", success:func
function check_product_cash_discount(total_id){
//check for cash discount
$.ajax({
url:siteurl+"checkout/get_cash_discount_ajax/",
type:"POST",
success:function(res){
var parsed = JSON.parse(res);
var this_product_total = $(total_id).text();
$.each(parsed,function(k,v){
var amount = v.cash_discount_amount;
//console.log(v);
if(this_product_total >= amount){
$(total_id).text(v.cash_discount_percentage);
console.log(amount);
}
});
}
});
}
AJAX调用的结果是res,我使用JSON.parse对其进行了解析,并将其放在parsed中。当console.logv与$.each匹配时,结果的值v如下所示:
Object {cash_discount_id: "4", cash_discount_amount: "1000", cash_discount_percentage: "10"}
Object {cash_discount_id: "3", cash_discount_amount: "800", cash_discount_percentage: "8"}
Object {cash_discount_id: "2", cash_discount_amount: "300", cash_discount_percentage: "7"}
我的问题是:当this_product_total变量小于if语句中的变量量时,它为什么会跳过第一个JSON结果对象?当I console.logamount时,当文本在变量this_product_total为512.89时,日志显示1000、300和200?当我使用$.isNumeric对amount和thid_product_total中的值进行评估时,它们是真的;请提供帮助。问题是金额1000被视为字符串。因此,我必须重新安装,1000问题得到解决,我增加了一个中断;如果该产品的总量>=数量,则一旦找到第一个匹配条件,它将停止循环 512显然不是大于等于1000。此外,如果不止一个项目符合条件,您将在每个项目上重写文本time@charlietfl那么,我如何使它只匹配300?别忘了添加基数参数!parseIntamount,10同样,这个中断在$中不会起任何作用。每个函数都是,因为它不是一个真正的循环。必须在$内返回false。每次回调都要停止迭代。