Javascript 如何在jquery函数$.each($(“abc”)中传递变量。。。?

Javascript 如何在jquery函数$.each($(“abc”)中传递变量。。。?,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我试图迭代一组selectoptionhtml下拉字段,并从非空字段中获取值,为PAYPAL购物车添加一个隐藏字段 我的问题是,由于某种原因,变量“curitem”没有在每个函数中传递,我不能像应该的那样添加隐藏字段。我得到的只是“NaN”或“undefined” PAYPAL期望的是:item_name_1、item_name_2等。所有数字必须以+1进行迭代 我该怎么做 先谢谢你 var curitem; $.each($("select"), function(index, item)

我试图迭代一组selectoptionhtml下拉字段,并从非空字段中获取值,为PAYPAL购物车添加一个隐藏字段

我的问题是,由于某种原因,变量“curitem”没有在
每个
函数中传递,我不能像应该的那样添加隐藏字段。我得到的只是“NaN”或“undefined”

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;
    }
});
var-curitem;
$。每个($(“选择”),函数(索引,项){
var attname=$(this.attr(“name”);
var nom=$(this.attr(“数据名称”);
var prix=$(this.attr(“数据值”);
var partname=attname.substring(0,1);
var qte=$(this.val();
//我希望我的所有项目的名称以“q”开头,并选择一个值
if(partname==“q”&&isNaN(qte)==false&&qte>0){
//项目名称
var inp2=document.createElement(“输入”);
inp2.setAttribute(“类型”、“隐藏”);
inp2.setAttribute(“id”、“项目名称”+curitem);
inp2.setAttribute(“名称”、“项目名称”+curitem);
inp2.setAttribute(“值”,nom);
//数量
var inp3=document.createElement(“输入”);
inp3.setAttribute(“类型”、“隐藏”);
inp3.setAttribute(“id”、“金额”+curitem);
inp3.setAttribute(“名称”、“金额”+curitem);
inp3.setAttribute(“值”,prix);
//数量
var inp4=document.createElement(“输入”);
inp4.setAttribute(“类型”、“隐藏”);
inp4.setAttribute(“id”、“数量”+curitem);
inp4.setAttribute(“名称”、“数量”+curitem);
inp4.setAttribute(“值”,qte);
//将隐藏字段添加到表单
document.getElementById('payPalForm').appendChild(inp2);
document.getElementById('payPalForm').appendChild(inp3);
document.getElementById('payPalForm').appendChild(inp4);
//项目编号
curitem=curitem+1;
}
});

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


var curitem=1;

为什么不设置
var curitem=0;
?还有一件事:你可以通过$.data()方法访问你的“数据-”标记属性为什么不改为使用
index
$('select')。每个(函数(索引,项){…})
可能更好。它在第一行代码中初始化。如果我把它放在jquery中,它就不起作用了。变量curitem在第一行中没有定义。你需要给它一个值,以便它起作用“curitem=curitem+1好吧……这很奇怪。起初,
curitem
是像你告诉我的那样定义的。然后,当我在这里发布时,我试着做了
var curitem;
。然后,只是玩了玩,我把它改成了
var I=0;
…并且成功了。我想知道我的Macrabbit浓缩咖啡软件是否没有产生我看不见的bug。。。