0

我有以下 JS 函数,我已经使用了很长时间,几乎逐字复制了另一个 Stack Overflow 问题。我发现,随着我的需求发生变化,我需要从按钮调用此函数并将 count 的值作为参数传递,而不是在函数中跟踪它。

我尝试将其更改为“function addInventory(count)”并在其中移动 var 模板行,但是 Firebug 报告 var 库存行的“SyntaxError:缺少变量名”,我不知道出了什么问题。

这有什么问题?

原始功能:

$(function()
{
    var template = $('#inventoryItems .inventory:first').clone(),
        inventoryCount = 0;

    var addInventory = function()
    {
        inventoryCount++;
        var inventory = template.clone().find(':input').each(function()
        {
            var newLabel = "invItem[" + inventoryCount + "]";
            $(this).prev().attr('id', newLabel);
            $(this).prev().attr('name', newLabel);
        }).end()
        .attr('id', 'inv' + inventoryCount)
        .appendTo('#inventoryItems > fieldset');
    };

    $('.btnAddInventory').click(addInventory);
});

新功能:

function addInventory(count)
{
    var template = $('#inventoryItems .inventory:first').clone(),

    var inventory = template.clone().find(':input').each(function()
    {
        var newLabel = "invItem[" + count + "]";
        $(this).prev().attr('id', newLabel);
        $(this).prev().attr('name', newLabel);
    }).end()
    .attr('id', 'inv' + count)
    .appendTo('#inventoryItems > fieldset');
};
4

1 回答 1

0

你错过了; var 模板行之后。改变

 var template = $('#inventoryItems .inventory:first').clone(),

 var template = $('#inventoryItems .inventory:first').clone();

这将解决“语法错误:缺少变量名”问题。

于 2013-09-30T05:18:56.330 回答