Adding/removing <li> 个元素 jQuery
Adding/removing <li> elements with jQuery
刚开始学习JavaScript/jQuery,做了一个小测试网站来练习编码。
在我做的一项测试中,有一个清单说牛奶和鸡蛋。有一个输入字段和一个按钮,您可以在其中键入内容,单击按钮,然后将其添加到列表中。然后我添加了一个选项,如果您单击其中一个列表项,它就会将其删除。这有效,但仅适用于预设的牛奶和鸡蛋项目,不适用于您自己添加的任何项目。
我认为这是因为没有为新添加的项目加载代码,但我不确定。有人可以帮忙吗?
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Practice 3</title>
<link href="index.css" rel="stylesheet" type="text/css">
<script src="http://code.jquery.com/jquery-2.1.3.min.js"></script>
</head>
<body>
<div class="Title" align="center">
<h1>Hello</h1>
<p>This website will use JavaScript to create interactive elements.</p>
</div>
<div class="1">
<h3>Test 1</h3>
<ul id="list">
<li>Milk</li>
<li>Eggs</li>
</ul>
<input id="textbox">
<button id="add">Add to list</button>
</div>
<script>
$('#add').click(function() {
var listvalue = $('#textbox').val();
$("#textbox").val("");
$('ul').append('<li>' + listvalue + '</li>');
});
$('#textbox').keypress(function(event) {
if(event.which === 13) {
var listvalue = $('#textbox').val();
$('#textbox').val("");
$('ul').append('<li>' + listvalue + '</li>');
}
});
$('li').click(function(e) {
$(e.target).remove();
});
</script>
</body>
</html>
$('#list').on('click', 'li', function(e) {
$(this).remove();
});
您可以使用 on
将点击甚至绑定到文档,然后指定一个选择器以指定它应该只触发 li
个元素:
$(document).on('click', 'li', function (e) {
$(this).remove();
});
这仍然适用于新添加的 li
元素,因为事件处理程序本身绑定到 文档本身 ,而不是单个元素。它只是执行运行时检查以确保分派的事件与提供的选择器匹配。
Gone Coding 在 Whosebug 上的回答:
下面是如何使用 jquery 的示例:
function moveItems(origin, dest) {
$(origin).closest("li").appendTo(dest);
}
$(document).on('click', '.add', function () {
moveItems(this, '#listTwo');
});
$(document).on('click', '.remove', function () {
moveItems(this, '#listOne');
});
刚开始学习JavaScript/jQuery,做了一个小测试网站来练习编码。
在我做的一项测试中,有一个清单说牛奶和鸡蛋。有一个输入字段和一个按钮,您可以在其中键入内容,单击按钮,然后将其添加到列表中。然后我添加了一个选项,如果您单击其中一个列表项,它就会将其删除。这有效,但仅适用于预设的牛奶和鸡蛋项目,不适用于您自己添加的任何项目。
我认为这是因为没有为新添加的项目加载代码,但我不确定。有人可以帮忙吗?
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Practice 3</title>
<link href="index.css" rel="stylesheet" type="text/css">
<script src="http://code.jquery.com/jquery-2.1.3.min.js"></script>
</head>
<body>
<div class="Title" align="center">
<h1>Hello</h1>
<p>This website will use JavaScript to create interactive elements.</p>
</div>
<div class="1">
<h3>Test 1</h3>
<ul id="list">
<li>Milk</li>
<li>Eggs</li>
</ul>
<input id="textbox">
<button id="add">Add to list</button>
</div>
<script>
$('#add').click(function() {
var listvalue = $('#textbox').val();
$("#textbox").val("");
$('ul').append('<li>' + listvalue + '</li>');
});
$('#textbox').keypress(function(event) {
if(event.which === 13) {
var listvalue = $('#textbox').val();
$('#textbox').val("");
$('ul').append('<li>' + listvalue + '</li>');
}
});
$('li').click(function(e) {
$(e.target).remove();
});
</script>
</body>
</html>
$('#list').on('click', 'li', function(e) {
$(this).remove();
});
您可以使用 on
将点击甚至绑定到文档,然后指定一个选择器以指定它应该只触发 li
个元素:
$(document).on('click', 'li', function (e) {
$(this).remove();
});
这仍然适用于新添加的 li
元素,因为事件处理程序本身绑定到 文档本身 ,而不是单个元素。它只是执行运行时检查以确保分派的事件与提供的选择器匹配。
Gone Coding 在 Whosebug 上的回答:
下面是如何使用 jquery 的示例:
function moveItems(origin, dest) {
$(origin).closest("li").appendTo(dest);
}
$(document).on('click', '.add', function () {
moveItems(this, '#listTwo');
});
$(document).on('click', '.remove', function () {
moveItems(this, '#listOne');
});