从列表中删除项目的问题

时间:2015-12-21 17:29:37

标签: javascript jquery

任何人都可以告诉我为什么这不起作用吗? 我想要一个函数,当我点击它时将删除列表项 - 而不是删除整个列表。

$(document).ready(function(){
    $( "#add-tag" ).on("click", function(x) {
        var tag = $("#new-tag").val();

        $("#galleries div:first-child").clone().appendTo("#galleries");

        $("#galleries-list").append('<li>' + tag + ' gallery: <a href="#"> remove</a></li>');
        $("#new-tag").removeAttr("value");
        x.preventDefault();
    });

    $("#galleries-list li a").on("click", function(x) {
        var elem = $(this);
        $(elem).remove();
    });


});

2 个答案:

答案 0 :(得分:3)

制作

$("#galleries-list li a").on("click", function(x) {
    var elem = $(this);
    elem.parent().remove(); //since you want to remove the li on click of a
});

它已经是一个jquery对象,你没有必要重新制作它。

答案 1 :(得分:0)

工作示例:https://jsfiddle.net/Twisty/88t09ma8/2/

<强> JQuery的

$(document).ready(function() {
  $("#add-tag").on("click", function(x) {
    x.preventDefault(); // Keep form from submitting
    var tag = $("#new-tag").val();
    $("#galleries div:first-child").clone().appendTo("#galleries");
    $("#galleries-list").append('<li>' + tag + ' gallery: <a href="#"> remove</a></li>');
  });

  $(document).on("click", "ul#galleries-list li a", function(x) {
    $("#new-tag").val("");
    $(this).parent("li").remove();
    return false;
  });
});

.on()没有挂钩到动态创建的链接,因此我必须更具体地选择它。此外,tag未定义。