Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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 删除数组中的当前节点onclick_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript 删除数组中的当前节点onclick

Javascript 删除数组中的当前节点onclick,javascript,jquery,arrays,Javascript,Jquery,Arrays,我正在开发一个订购应用程序,它需要允许用户删除以前输入的订单。“删除”按钮当前删除屏幕上的所有输出,当添加新订单时,所有过去的订单和新订单重新出现,而不是单个新订单 // Global Variables var orderTotal = 0; var grandTotal = 0; var burritos = []; function init() { var btnAddToOrder = document.getElementById("addToOrder");

我正在开发一个订购应用程序,它需要允许用户删除以前输入的订单。“删除”按钮当前删除屏幕上的所有输出,当添加新订单时,所有过去的订单和新订单重新出现,而不是单个新订单

// Global Variables
var orderTotal = 0;
var grandTotal = 0;
var burritos = [];

function init() {
    var btnAddToOrder = document.getElementById("addToOrder");
        btnAddToOrder.onclick = processOrder;
}

function processOrder() {
    var fieldBurrito = document.getElementById("burrito");
        var index = fieldBurrito.selectedIndex;
        var burritoChoice = fieldBurrito.options[index].value;
    var fieldRice = document.getElementsByName("rice");
        for (var a = 0; a < fieldRice.length; a++) {
            if (fieldRice[a].checked) {
                var riceChoice = fieldRice[a].value;
           } else {
                riceChoice = "No";
           }
        }
    var fieldBeans = document.getElementsByName("beans");
        for (var e = 0; e < fieldBeans.length; e++) {
            if (fieldBeans[e].checked) {
                var beansChoice = fieldBeans[e].value;
            } else {
                beansChoice = "No";
            }
        }
    var fieldSalsa = document.getElementsByName("salsa");
        var salsaChoice = "";
        for (var i = 0; i < fieldSalsa.length; i++) {
            if (fieldSalsa[i].checked) {
                salsaChoice += fieldSalsa[i].value + " ";
            }
        }
    var fieldGuac = document.getElementsByName("guacamole");
        for (var o = 0; o < fieldGuac.length; o++) {
            if (fieldGuac[o].checked) {
                var guacChoice = fieldGuac[o].value;
            } else {
                guacChoice = "No Guac";
            }
        }
    //Reset the cost of each individual order
    orderTotal = 0;
    grandTotal = 0;
    //Determine the type of burrito and associate correct cost
    switch (burritoChoice) {
        case "Chicken":
            orderTotal += 6.20;
            break;
        case "Steak":
            orderTotal += 6.75;
            break;
        case "Carnitas":
            orderTotal += 6.60;
            break;
        case "Sofritas":
            orderTotal += 6.20;
            break;
        case "Barbacoa":
            orderTotal += 6.60;
            break;
    }

    if (guacChoice == "Guacamole") {
        orderTotal += 1.40;
    }

    var burritoInstance = {
        "Burrito":burritoChoice,
        "Rice":riceChoice,
        "Beans":beansChoice,
        "Salsa":salsaChoice,
        "Guacamole":guacChoice,
        "Price":orderTotal
    };

    burritos.push(burritoInstance);
    // Check to see that the fieldValues array has at least one element
    if (burritoChoice !== "Choose a Burrito") {
        generateReceipt(burritos);
    } else {
        console.log("Please choose a burrito type to continue. All other toppings are optional.");
    }
}

//********************************************************************************************
function removeButton(i) {
    var removeButton = document.createElement("button");
        var value = document.createTextNode("Remove Order");
        removeButton.appendChild(value);
        removeButton.id = i;
        removeButton.onclick = function() {
            var thing = this.parentNode;
            thing.parentNode.removeChild(thing);
        }
    return removeButton;
}
//--------------------------------------------------------------------------------------------
function br() {
    return document.createElement('br');
}
//********************************************************************************************

function generateReceipt(burritos) {
    var element = document.getElementById("output");
        if(element) {
            element.parentNode.removeChild(element);
        }
    var burritoList = document.createElement("div");
        burritoList.id = "output";
    for(var i=0; i < burritos.length; i++) {
        var outputList = document.createTextNode(burritos[i].Burrito + " Burrito - " +
                                                 burritos[i].Rice + " Rice - " +
                                                 burritos[i].Beans + " Beans - " +
                                                 burritos[i].Salsa + " Salsa - " +
                                                 burritos[i].Guacamole + " - $" +
                                                 burritos[i].Price);
            outputList.id = "burritoInstance";

        grandTotal += burritos[i].Price;
        burritoList.appendChild(outputList);
        burritoList.appendChild(removeButton(i));
        burritoList.appendChild(br());
    }
    var orderTotal = document.createTextNode("Order Total: $" + grandTotal);
        burritoList.appendChild(orderTotal);
    document.body.appendChild(burritoList);
}
//全局变量
var orderTotal=0;
var-grandTotal=0;
var burritos=[];
函数init(){
var btnAddToOrder=document.getElementById(“addToOrder”);
btnAddToOrder.onclick=processOrder;
}
函数processOrder(){
var fieldBurrito=document.getElementById(“burrito”);
var指数=fieldBurrito.selectedIndex;
var burritoChoice=fieldBurrito.options[index].value;
var fieldRice=document.getElementsByName(“rice”);
对于(变量a=0;a
在某些情况下,我需要在按钮单击中包含逻辑,以便在删除订单时调整订单总数,但首先我需要能够访问每个按钮之前的订单


您的JSFIDLE似乎根本不起作用,并且有许多关于HTML中应该包含的内容和不应该包含的内容的警告。我明白了。除了删除功能外,我从中复制的代码工作正常。我会更新的。谢谢