Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript对象未删除正在破坏计算表单的id_Javascript_Jquery_Object_Load - Fatal编程技术网

Javascript对象未删除正在破坏计算表单的id

Javascript对象未删除正在破坏计算表单的id,javascript,jquery,object,load,Javascript,Jquery,Object,Load,代码现在已启动并正在运行,但此代码的删除部分不起作用。删除部分应从对象中删除给定id,以便在加载该id及其信息后,该id不包括在计算中。然而,它没有,它仍然保留在计算中。我尝试了社区提供的几种解决方案,但都没有效果。有人有什么想法吗 var productIds = {} function product_analysis(address, id, box) { productIds[id] = true; // store all id's as the totals are cal

代码现在已启动并正在运行,但此代码的删除部分不起作用。删除部分应从对象中删除给定id,以便在加载该id及其信息后,该id不包括在计算中。然而,它没有,它仍然保留在计算中。我尝试了社区提供的几种解决方案,但都没有效果。有人有什么想法吗

var productIds = {} 
function product_analysis(address, id, box) {
    productIds[id] = true; // store all id's as the totals are calculated
    if (box.checked) {

      $('#product_' + box.alt).load(address);

    }
    else {

      $('#product_' + box.alt).load('http://www.divethegap.com/update/blank2.html');
      (delete productIds[id]);

    }
    document.getElementById('product_quantity_PRI_' + box.alt).value = box.value;


};

function product_totals(id) {
    productIds[id] = true; // store all id's as the totals are calculated
    var quantity = $('product_quantity_' + id).value;
    var price = $('product_price_' + id).value;
    var duration = $('product_duration_' + id).value;
    var dives = $('product_dives_' + id).value;
    var hire = $('product_hire_' + id).value;

    Number($('product_price_total_' + id).value = price * quantity);
    Number($('product_duration_total_' + id).value = duration * quantity);
    Number($('product_dives_total_' + id).value = dives * quantity);
    Number($('product_hire_total_' + id).value = hire * quantity);
    function $(id) {
      return document.getElementById(id);
    } 

    var totalPriceTotal = 0;
    var totalDurationTotal = 0;
    var totalDivesTotal = 0;
    var totalHireTotal = 0;
    for (var id in productIds) {
        // multiply by 1 to make sure it's a number
        totalPriceTotal += $('product_price_total_' + id).value*1;
        totalDurationTotal += $('product_duration_total_' + id).value*1;
        totalDivesTotal += $('product_dives_total_' + id).value*1;
        totalHireTotal += $('product_hire_total_' + id).value*1;
    }
    $('GT_total_price').value = totalPriceTotal;
    $('GT_total_duration').value = totalDurationTotal;
    $('GT_total_dives').value = totalDivesTotal;
    $('GT_total_hire').value = totalHireTotal;

    function $(id) {
      return document.getElementById(id);
    }

}

很难判断您在这里做什么,但也很难让删除运算符出错。在删除之前和之后对ProductID发出警报,我怀疑您是否会在对象中看到已删除的键


问题是,不管你想做什么,可能都有更好的方法——你能用英语描述一下这个操作吗?

你在评论中提到第二个函数被调用了

…当在第一个函数中加载的产品完成加载时

这只是一个猜测,但是在没有看到更多代码的情况下,
delete
似乎发生在
.load()
之后,而不是在回调中。根据您的安排方式,删除可能会在
product\u totals(id)
调用之后发生。因此,我建议如下重新安排:

 $('#product_' + box.alt)
   .load('http://www.divethegap.com/update/blank2.html', function(){
     delete productIds[id];
     product_totals(id);
   });

这两个函数在哪里/如何调用?如果看不到更多信息,很难判断问题出在哪里。此外,您在“product_totals()”中定义(两次)的“$”函数有些反常,因为您在其他地方使用了jQuery。第一个函数“product_analysis(address,id,box)”由页面上的选项调用。当在第一个函数中加载的产品已完成加载产品总计(“PRI”)时,调用第二个函数“函数产品总计(id)”;是的,也许有更好的办法。我不是天生的编码,所以对我放松点。这是一张预订单。左侧有一些选项,通过Jquery load在右侧加载相应的产品。这些加载项包含该产品的价格、持续时间、潜水和租用字段。然后将其乘以选择该选项时分配给产品的数量。然后将所有这些加在对象中,得到一个总价、总工期等。。。。。现在,与其让我看一看>>点击初学者,这并不意味着批评,只是一般来说,如果你解释了你的意图,你就提供了获得更好答案的背景。@Robin:你似乎有一些IE问题(不是我们所有人),现在帮不上什么忙,因为我一直在使用IE抱歉。肯的建议似乎很可靠。我试过了,但没有效果,但也许我们看得不对。此时,在计算时引用产品ID。因为脚本在对象中引用的ID可能不再存在,所以脚本失败。那么,如果在加法过程之前,将右侧ID的引用转换为另一个函数会怎么样呢。现在我们该怎么做呢?很多感谢罗宾,如果你认为它们是相关的,你应该在这里和原始问题下面提取你的评论,并将它们添加到问题本身的文本中。这似乎是一种确定的可能性。脚本加载在代码底部的ajax加载中,因此产品_总计('PRI_');罗宾,你说“在代码的底部”是什么意思?你的意思是在页面的底部吗?通过jQuery加载的页面的底部你是在加载到一个有自己的HTML、头、体等的DIV a页面吗?