如何在jquery函数$.each($(“abc”)内传递变量.

How to pass a variable inside a jquery function $.each($("abc")...?

本文关键字:变量 abc 函数 jquery each      更新时间:2023-09-26

我正在尝试迭代一堆SELECT OPTION html下拉字段,从那些不为空的字段中,获取值并为PAYPAL购物车添加一个隐藏字段。

我的问题是,由于某种原因,变量"curitem"没有在each函数内部传递,我无法像他们应该的那样添加隐藏字段。我得到的只是"NaN"或"未定义"。

PAYPAL期望的是:item_name_1、item_name_2等。所有数字都必须迭代+1。

我该怎么做?

提前感谢

var curitem;
$.each($("select"), function(index, item) {
    var attname = $(this).attr("name");
    var nom = $(this).attr("data-nom");
    var prix = $(this).attr("data-val");
    var partname = attname.substring(0, 1);
    var qte = $(this).val();
    // i want all my <select option> items that the NAME start with "q" AND have a value selected
    if (partname == "q" && isNaN(qte) == false && qte > 0) {
        // item name
        var inp2 = document.createElement("input");
        inp2.setAttribute("type", "hidden");
        inp2.setAttribute("id", "item_name_"+curitem);
        inp2.setAttribute("name", "item_name_"+curitem);
        inp2.setAttribute("value", nom);
        // amount
        var inp3 = document.createElement("input");
        inp3.setAttribute("type", "hidden");
        inp3.setAttribute("id", "amount_"+curitem);
        inp3.setAttribute("name", "amount_"+curitem);
        inp3.setAttribute("value", prix);
        // qty
        var inp4 = document.createElement("input");
        inp4.setAttribute("type", "hidden");
        inp4.setAttribute("id", "quantity_"+curitem);
        inp4.setAttribute("name", "quantity_"+curitem);
        inp4.setAttribute("value", qte);
        // add hidden fields to form
        document.getElementById('payPalForm').appendChild(inp2);
        document.getElementById('payPalForm').appendChild(inp3);
        document.getElementById('payPalForm').appendChild(inp4);

        // item number
        curitem = curitem + 1;
    }
});

我认为您必须初始化curitem变量。

var curitem = 1;