gpt4 book ai didi

javascript - 使用 jQuery 删除这个单击的列表元素

转载 作者:行者123 更新时间:2023-12-03 02:37:44 24 4
gpt4 key购买 nike

我非常感谢您的帮助。我希望在单击时删除使用“#save”按钮创建的列表项。注释的方法不起作用。如果我输入“h1”或其他内容,它就没有问题。此外,“#delBtn”按钮可以毫无问题地删除所有列表项。但当我单击要删除的列表项时,我无法使其工作。感谢您提前抽出时间。

function Contact(first, last) {
this.firstName = first;
this.lastName = last;
}


$(document).ready(function() {
let a_contacts = [];

$("#delBtn").click(function(){
$("li").remove();
});

$("#save").click(function(){
event.preventDefault()

var inputtedFirstName = $("input#new-first-name").val();
var inputtedLastName = $("input#new-last-name").val();
var newContact = new Contact(inputtedFirstName, inputtedLastName);
$("ul#contacts").append("<li class='contact'>" +'First Name: '+ newContact.firstName + ' Last Name: '+ newContact.lastName + "</li>");

a_contacts.push(newContact);

$("input#new-first-name").val("");
$("input#new-last-name").val("");
});


//---------------------------------------------------------------



// $("li").click(function() {
// $(this).remove();
// });


// $('li').click(function(e){
// $(e.target).remove();
// });


});


<!DOCTYPE html>
<html>
<head>
<link href="CSS/bootstrap.css" rel="stylesheet" type="text/css">
<link href="CSS/style.css" rel="stylesheet" type="text/css">
<script src="JS/jquery-3.2.1.js"></script>
<script src="JS/myjava.js"></script>
<title>Address book</title>
</head>
<body>
<div class="container">
<h1 id="haha" >Address book</h1>

<div class="row">
<div class="col-md-6">
<h2>Add a contact:</h2>

<form id="new-contact"><!-- form -->
<div class="form-group">
<label for="new-first-name">First name</label>
<input type="text" class="form-control" id="new-first-name">
</div>
<div class="form-group">
<label for="new-last-name">Last name</label>
<input type="text" class="form-control" id="new-last-name">
</div>

<button id="delBtn" class="btn">Add</button>
<button id="save" class="btn">Save</button>
</form><!-- form -->

<h2>Contacts:</h2>
<ul id="contacts">

</ul>
</div>
<div class="col-md-6">
<div id="show-contact">
<h2></h2>

<p>First name: <span class="first-name"></span></p>
<p>Last name: <span class="last-name"></span></p>
</div>
</div>
</div>
</div>
</body>
</html>

最佳答案

尝试委托(delegate)事件监听器。我相信,由于这些元素是动态创建的,事件监听器不会在页面加载时找到它们并附加它们。尝试做这样的事情:

`$(document).on('click', 'li', function () {
$(this).remove();
})`

发生的事情是文档在页面加载时获取事件监听器,并在创建后将点击效果传递给所有 li。

关于javascript - 使用 jQuery 删除这个单击的列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48471995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com