Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何根据单击的按钮将li添加到ul_Jquery - Fatal编程技术网

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

Jquery 如何根据单击的按钮将li添加到ul,jquery,Jquery,我有各种各样的建议。如何根据在该特定位置单击的按钮添加新列表 如何保存点击按钮的ul并创建li并将其添加到ul <ul id ="list1"><li>item1</li><input type= "Button" id = "test1" value = "Save"></ul> <ul id ="list2"><li>item11</li><input type= "Button" id =

我有各种各样的建议。如何根据在该特定位置单击的按钮添加新列表 如何保存点击按钮的ul并创建li并将其添加到ul

<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>
$(this).closest('ul').append('li>');

但是你不应该直接在UL上有一个按钮。UL应该只包含列表项。

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

$("ul :button")
您可以编写这样的代码

我想你的要求是

单击按钮时,将新的li项目添加到按钮单击时的列表中,并将按钮的值从保存更改为删除

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

为此,您可以使用

$("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');
 });

如果您正在使用XHTML(如果
  • 允许自动关闭;并非所有标记都允许)。在HTML中,
  • 有效,而
  • 无效。
    $("ul :button")
    
    $("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');
     });
    
    elem.closest("ul").find("li:first-child").remove();
    
    elem.closest("ul").remove();