JQuery实现标签的删除与添加
- 功能描述:
点击tag标签的X能删除标签,点击添加能弹出输入框填写标签的文字,完成后可以展示新添加的标签
- html代码
<div class="card-body row">
// 第三级分类
<div class="col-10 elementClass">
//原来有的两个子标签
<span class="mx-1 border border-primary rounded p-1" style="color:rgb(0,123,255)">光学<a style="text-decoration: none;" href="javascript:;" onclick="delElement(this)">×</a></span>
<span class="mx-1 border border-primary rounded p-1" style="color:rgb(0,123,255)">力学<a style="text-decoration: none;" href="javascript:;" onclick="delElement(this)">×</a></span>
</div>
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary col-1" data-toggle="modal" data-target="#staticBackdrop3_1"> 添加</button>
//点击添加按钮弹出的Modal框
<div class="modal fade" data-backdrop="static" id="staticBackdrop3_1" data-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
//模态框头部标题
<div class="modal-header">
<h5 class="modal-title" id="staticBackdropLabel">添加子分类</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
//模态框输入框
<div class="modal-body text-center inputFather">
<input type="text" class="elementInput" width="450px">
</div>
//模态框底部按钮
<div class="modal-footer">
<button type="button" class="btn btn-primary" onclick="addElement(this)">添加</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
</div>
</div>
</div>
</div>
// 第三级分类结束
</div>
- jQuery代码
// 删除子分类
function delElement(obj) {
//获取当前对象的父元素,在其下寻找id为“id”的元素的值
// var id1=$(obj).parents("tr").find("#id").val();
// obj.preventDefault();
var res=confirm("确定要删除么?");
if(res){
//删除界面元素,当前行
$(obj).parent("span").remove();
}
}
// 添加元素
function addElement(obj) {
console.log(obj);
//获取input的值
//获取用户修改的值只能用val()方法
//获取文本域的值并且去掉前后的空格
var myVal = $.trim($(obj).parent().prev().children().val());
//判断输入是否为空
if(myVal == ''){
alert('分类不能为空!');
//清空文本域
$('.elementInput').val('');
}else if (myVal.length >= 10) {
alert('输入的文字不能超过10个字');
}else {
var myTag = $('<span class="mx-1 border border-primary rounded p-1" style="color:rgb(0,123,255)">'+myVal+'<a style="text-decoration: none;" href="javascript:;" οnclick="delElement(this)">×</a></span>');
//添加
$(obj).parents('.card-body').children('.elementClass').prepend(myTag);
//为了用户体验,提交后要清空文本域
$('.elementInput').val('');
}
}
到此逻辑就完成了,感觉最重要的是能在页面中找到你需要的dom元素进行操作。