社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Jquery

使用onclick事件删除JQuery<li>

Juan Alberto • 5 年前 • 1661 次点击  

function addElement(e) {
    let text = $('#itemToAdd').val();
    let newItem = $('<li>' + text + '</li>');
    let removeBtn = $('<button onclick = "removeElement">X</button>');

    newItem.append(removeBtn);
    $('#shoppingList').append(newItem);
    $('#itemToAdd').val('');
    e.preventDefault();
}

$(document).ready(function() {
    $("#addBtn").on('click', addElement);
});

对于删除元素,我有:

function removeElement() {
    $(this).parent().remove();
}

添加功能非常有用,但是删除功能却不行。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/56981
 
1661 次点击  
文章 [ 2 ]  |  最新文章 5 年前
palaѕн
Reply   •   1 楼
palaѕн    5 年前

从这以后 button

$('#shoppingList').on( "click", "button", function( event ) {
    $(this).closest('li').remove();
});

工作演示:

let count = 1;
function addElement(e) {
  e.preventDefault();
  //let text = $('#itemToAdd').val();
  let newItem = $(`<li>This is a text ${count++}  </li>`);
  let removeBtn = $('<button>X</button>');

  newItem.append(removeBtn);
  $('#shoppingList').append(newItem);
  //$('#itemToAdd').val('');    
}

$(document).ready(function() {
  $("#addBtn").on('click', addElement);

  $('#shoppingList').on("click", "button", function(event) {
    $(this).closest('li').remove();
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="addBtn">Add</button>
<ul id="shoppingList"></ul>
Pranav C Balan
Reply   •   2 楼
Pranav C Balan    5 年前

如果你正在使用 onclick 然后必须使用引用调用函数,因为 this window 对象)并基于此移除该元素。

元素创建:

let removeBtn = $('<button onclick = "removeElement(this)">X</button>');

function removeElement(ele) {
    $(ele).parent().remove();
}

或者也可以使用现有函数,但在创建元素后使用jQuery绑定事件处理程序。

let removeBtn = $('<button>X</button>');
removeElement.click(removeElement);

event delegation 这有助于处理动态创建的元素上的事件。