Javascript不会将我的计数器变量视为数字

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)

但这只会搞砸循环

Fel*_*ing 7

只需将表达式分组:

"..." + (j+1) + "..."
Run Code Online (Sandbox Code Playgroud)

这将提供j + 1更高的优先级,以便首先进行评估然后连接.

否则,首先将与字符串串联,即,首先j与前面的字符串连接,然后将结果字符串与1(从左到右的评估)连接起来.如果没有分组,表达式将被隐式评估为:

((("..." + j) + 1) + "...")
Run Code Online (Sandbox Code Playgroud)