如何根据点击的按钮将li添加到ul

时间:2010-02-10 10:43:51

标签: jquery

我有各种各样的。如何根据特定ul中单击的按钮添加新列表 如何获取保存按钮的ul点击并创建并添加到该ul?

的li
<ul id ="list1"><li>item1</li><input type= "Button" id = "test1" value = "Save"></ul>
<ul id ="list2"><li>item11</li><input type= "Button" id = "test11" value = "Save"></ul>

Jquery代码如下:

   $(document).ready(function(){ 

     $("#list :button").click(function(){ 
         var text = $(this).val();

        if ( text == "Delete") {
           $(this).parent().remove(); 
        }
               if(text =="Save")
               {
                   //How to get the UL of the button saved clicked and create and add li to that UL
               }
   }); 
});​

2 个答案:

答案 0 :(得分:1)

$(this).closest('ul').append('<li>');

但您不应该直接在UL中使用按钮。 UL应该只包含列表项。

答案 1 :(得分:0)

您的代码的第一个问题是您的选择器是错误的。要选择ul中的按钮,您可以使用

$("ul :button")

你可以写这样的代码。

我认为你的要求是

点击按钮,在点击按钮时将新项目添加到列表中,然后将按钮值从保存更改为删除

再次单击按钮,从ul中删除新创建的li,并将按钮的值从Delete更改为Save。

为此,您可以使用 toggle function

$("ul :button").toggle(
    function(){
        var elem = $(this);
        elem.closest("ul").prepend("<li>item</li>");
        elem.val('Delete');
    },
    function(){
        var elem = $(this);
        elem.closest("ul").find("li:first-child").remove();
        elem.val('Save');
 });

如果要在第二次单击时删除ul元素,可以替换

elem.closest("ul").find("li:first-child").remove();

elem.closest("ul").remove();