Jam*_*oll 1 javascript jquery integer count
我正在尝试使用jQuery生成表单元素以发送到Paypal表单,我在循环数组时遇到问题.
购物车中的商品列表保存在一个数组中,Javascript循环遍历数组,添加表单字段和值,如下所示
for (j=0;j<(itemArray.length);j++)
$('#createFields').append("<input type='hidden' name='item_name_"+ j +"' value='"+itemArray[j]+"'/>");
Run Code Online (Sandbox Code Playgroud)
这很好用,除了我需要item_name_以1开头,而不是0.
我觉得"容易"
for (j=0;j<(itemArray.length);j++)
$('#createFields').append("<input type='hidden' name='item_name_"+ j+1 +"' value='"+itemArray[j]+"'/>");
Run Code Online (Sandbox Code Playgroud)
应该工作,但不,这给了01.
所以我认为它不是将"j"视为整数
所以我试过了
(j*1)+1
Run Code Online (Sandbox Code Playgroud)
那仍然给了我01
parseInt(j)+1
Run Code Online (Sandbox Code Playgroud)
还给我01!
如何从这个计数器变量得到"0 + 1 = 1"?!
我无法理解为什么会出现这个问题,我之前已经多次遇到过与上述方法相同的问题!
我也试过了
for (j=1;j<( (itemArray.length+1) );j++)
Run Code Online (Sandbox Code Playgroud)
但这只会搞砸循环
只需将表达式分组:
"..." + (j+1) + "..."
Run Code Online (Sandbox Code Playgroud)
这将提供j + 1更高的优先级,以便首先进行评估然后连接.
否则,首先将与字符串串联,即,首先j与前面的字符串连接,然后将结果字符串与1(从左到右的评估)连接起来.如果没有分组,表达式将被隐式评估为:
((("..." + j) + 1) + "...")
Run Code Online (Sandbox Code Playgroud)