在自调用jQuery函数中设置属性和传递参数

时间:2012-04-16 18:15:43

标签: jquery function syntax arguments argument-passing

我认为这完全取决于语法问题。我不知道如何在addItem()函数中正确设置li项的id属性。

如果我删除addItem()函数中的“ths”参数(在on click函数中定义),则为动态创建的列表项正确设置id属性。如果我传递参数,函数会成功触发,但它不会为列表项设置id。它只是创建一个没有id的列表项。

在保持我下面的格式的同时,如何在向函数传递参数时正确设置动态创建的列表项的id?

我可以这样做:

$('<li>'+ths+'</li>').attr('id', 'foo'+i).attr('class', 'bar'); i++;

但这不符合我下面的模型的语法。它的效率也不高。

(function () {
    var i = 1;
    var addContainer = {
        init: function () {
            $('<li></li>', {
                id: "today"
            }).prependTo('#myDiv');
        },
        addItem: function (ths) {
            $('<li>' + ths + '</li>', {
                id: 'newItem' + i
            }).prependTo('#orderList');
            i++
        }
    };
    $('body').on('click', '.itemRow', function () {
        var ths = $(this).children('.itemTitle').text();
        if ($('today').length >= 0) {
            addTodaysOrders.addOrder(ths);
        }
    });
})();​

这段代码只是一个简短的概述,以便了解...它缺少一些部分。但这里重要的部分就是在这种格式下设置id的语法。

1 个答案:

答案 0 :(得分:3)

$('<li>', {
    id: 'newItem' + i,
    text: ths
})