如何编辑所有与相同结束号关联的动态创建元素?

时间:2012-05-16 14:25:33

标签: jquery dynamic

用户可以选择创建最多100个列表项。我的目标是在每个项目下创建一个菜单,用于编辑该单个项目。以下是编辑按钮的代码:

$(document).ready(function(){

var nextItemId = 1;

$('#AddItem').click(function(){

        //Create and add a paragraph

$('<p />').attr('id', 'itemParagraph' + nextItemId)

.text(nextItemId + ". ")

.appendTo('#listInput');


    //Create and add an input box

$('<input />').attr({'type':'text', 'id':'item' + nextItemId})

.appendTo('#itemParagraph' + nextItemId);

        //Create an edit button for input box

$('<input />').attr({'type':'button', 'value':'Edit', 'id':'editItem' + nextItemId})

.appendTo('#itemParagraph' + nextItemId);

    //d number

nextItemId++;

});

如何创建适用于所有变量item1,item2等的函数... item100及其相应的编辑按钮editItem1,editItem2等.... editItem100?有没有办法在为它们创建菜单时引用这些变量并将其精确地压缩到函数中?按下编辑按钮时,菜单将向下滑动。

1 个答案:

答案 0 :(得分:0)

保留对$('<input />')返回的内容的引用,并将其传递给回调。例如:

var item = $('<input />');
item.attr({'type':'text', 'id':'item' + nextItemId})
    .appendTo('#itemParagraph' + nextItemId);

... create menu ...
menuItem.click(function() { item.focus(); })

这是有效的,因为匿名函数保持指向创建它的上下文的指针,因此保持指向当前item的“值”(=它指向的引用)。