如何将新列表项添加到无序列表中
How to add new list item to unordered list
我有一个HTML页面,其中有一个无序列表,如下所示(简化):
<ul id="myList">
<li id="item1">Item 1 <a href="javascript:void(0)" class="myButton">Add</a></li>
<li id="item2">Item 2 <a href="javascript:void(0)" class="myButton">Add</a></li>
<li id="item3">Item 3 <a href="javascript:void(0)" class="myButton">Add</a></li>
<li id="item4">Item 4 <a href="javascript:void(0)" class="myButton">Add</a></li>
<li id="item5">Item 5 <a href="javascript:void(0)" class="myButton">Add</a></li>
</ul>
有没有一种方法可以使用jQuery通过单击相应的按钮在当前列表项下面添加一个新的列表项?示例:如果单击项目2的按钮,我希望在项目2和项目3之间添加新的列表项目。
我不确定我是否可以在这里使用"after"
,如果,如何在这种情况下应用它,或者是否有更好的方法。
$('#myList').on('click', '.myButton', function () {
$(this).closest('li').after(createItem());
});
function createItem() {
//return your HTML, a jQuery object or a DOM element representing
//the new item to add
}
请注意,我没有为id
数字而烦恼,因为我认为您可能不需要id
属性(我想它们是您解决问题的一部分?)。
这并不难。
function addAnItem(button){
var newItem = $('<li>New Item <a href="javascript:void(0)" class="myButton">Add</a></li>');
newItem.find('.myButton').click(function(){
addAnItem(this);
});
$(button).parent().after(newItem);
}
var list = $('ul').find('.myButton').click(function(){
addAnItem(this);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li id="item1">Item 1 <a href="javascript:void(0)" class="myButton">Add</a></li>
<li id="item2">Item 2 <a href="javascript:void(0)" class="myButton">Add</a></li>
<li id="item3">Item 3 <a href="javascript:void(0)" class="myButton">Add</a></li>
<li id="item4">Item 4 <a href="javascript:void(0)" class="myButton">Add</a></li>
<li id="item5">Item 5 <a href="javascript:void(0)" class="myButton">Add</a></li>
</ul>
已经有很多答案了,但只是想添加我的解决方案。想办法做到这一点对我来说是一次有趣的锻炼。
$('.myButton').click(function() {
$('<li>New Item</li>').insertAfter($(this).closest('li'));
});
var addedLis=0
$(function(){
$("#myList").on("click",".myButton",function(){
addedLis++;
var _newLI='<li id="addedItem'+addedLis+'">Added Item '+addedLis+' <a href="javascript:void(0)" class="myButton">Add</a></li>'
$(this).parent().after(_newLI);
});
});
示例
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<ul id="myList">
<li id="item1">Item 1 <a onclick='$(this).append("<li>a</li>");' class="myButton">Add</a></li>
<li id="item2">Item 2 <a onclick='$(this).append("<li>a</li>");' class="myButton">Add</a></li>
<li id="item3">Item 3<a onclick='$(this).append("<li>a</li>");' class="myButton">Add</a></li>
<li id="item4">Item 4 <a onclick='$(this).append("<li>a</li>");' class="myButton">Add</a></li>
<li id="item5">Item 5 <a onclick='$(this).append("<li>a</li>");' class="myButton">Add</a></li>
</ul>
相关文章:
- 在Javascript中使用JQueryMobile向列表添加项目
- 角度 - 需要向选择下拉列表添加多个占位符
- Javascript:如何为列表添加价值并使其即时更新
- 如何为我的嵌入YouTube播放列表添加Facebook共享按钮
- 如何允许用户将播放列表添加到单个 YT 帐户
- 将值列表添加到值本身,不包括其自身的值
- 将多个英国邮政编码列表添加到谷歌地图
- 如何使用 JavaScript 将下拉列表添加到<跨度>
- 下划线模板,将列表添加到单个数组中
- 如何将地址列表添加到地图一侧
- 可以通过Javascript将选择下拉列表添加到我的winJS工具栏中吗?
- 如何将选择列表添加到自定义实体的案例表单中(注意:替换普通查找字段)
- 使用下拉列表添加/删除搜索框
- 如何使用zip.js将图像文件列表添加到zip文件中
- 如何在jQuery中向不同的下拉列表添加不同的前缀
- 如何在单击时以编程方式将网页列表添加到浏览器收藏夹中
- 单击按钮将下拉列表添加到新行
- 为每个从特定数字开始的x列表添加边框
- 在使用javascript向下拉列表添加项目并运行服务器端代码后,无效的回发或回调参数
- 选择Jplayer播放列表添加复选框