0

これはすべて構文の問題に帰着すると思います。addItem() 関数で li アイテムの id 属性を正しく設定する方法がわかりません。

addItem() 関数 (クリック関数で定義されている) の "ths" 引数を削除すると、動的に作成されたリスト項目に対して 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 を設定する構文です。

4

1 に答える 1

3
$('<li>', {
    id: 'newItem' + i,
    text: ths
})
于 2012-04-16T18:24:46.857 に答える