手把手带你复刻CSDN添加文章标签

简介: 标签生成数量超过5个时不可添加2. Enter键入添加标签,输入框清空3. 出现重复时,则不可添加4. 点击```X```删除

最终效果

test
如果你在CSDN发表过博客,那么我们可以从实际应用中基本了解到标签需要实现的功能有:

  1. 标签生成数量超过5个时不可添加
  2. Enter键入添加标签,输入框清空
  3. 出现重复时,则不可添加
  4. 点击X删除

html代码

使用了bootstrap样式tagInput用于标签输入,#tagList的div用于添加生成的标签


<div class="row mb-3">
    <div class="col-2">
        <span>标签</span>
    </div>
    <div class="col-10">
        <input type="text" class="form-control" id="tagInput" placeholder="标签">
        <div id="tagList">
            <!--生成的标签-->
        </div>
    </div>
</div>

页面效果图:

image-20220502072206573

javascript代码

标签超过5个时不可添加

我们创建一个数组,通过数组的长度来判断

javascript代码

//存储标签
var tagLists = [];

Enter键添加标签

因为csdn是没有用分割的,只有Enter键入生成,所以我们只需要获取input标签中输入的值输出即可

javascript代码

//监听键盘按下Enter键
$(document).keyup(function(event) {
    if (event.keyCode == 13) {
        //判断标签输入框是否获得焦点,防止冲突
        var isFocus = $("#tagInput").is(":focus");
        if (isFocus) {
            //判断标签数量是否有5个
            if (tagLists.length = 5) {
                return false;
            }
            //获取输入框输入的值,防止为空,但在CSDN是允许输入空格的
            var text = $("#tagInput").val().trim();
            if (text == "")
                return false;
            //判断标签是否已经在数组中存在,防止重复
            if ($.inArray(text, tagLists) != -1)
                return false;
            //将标签添加进数组,拼接html代码添加到div
            tagLists.push(text);
            $("#tagList").append("<span class='btn btn-info tagItem'>" + text +
                                 " <span class='badge bg-danger delete'><i class='fas fa-times'></i></span></span>");
            //输入框清空
            $("#tagInput").val("");
        }

    }
});

删除标签

对Class为delete的元素添加click点击事件,并从保存标签的tagLists数组中删除

$(document).on("click", ".delete", function() {
    var text = $(this).text().trim();
    tagLists.splice($.inArray(text, tagLists), 1);
    $(this).parent().remove();
});

获取标签

join()方法可以把数组中的所有元素转换为一个字符串

//将数组中的元素使用","拼接
tagLists.join(",")

image-20220502095701646


到这里就结束了,如果对你有帮助,请持续关注。

目录
相关文章
|
5月前
|
机器学习/深度学习 算法 TensorFlow
|
3月前
|
机器学习/深度学习 前端开发 JavaScript
230+本图灵编程高清文字版无水印电子书合集【制作不易,点赞收藏❤️】
今日精选,200余本图灵出版的高质量编程电子书,覆盖编程、系统架构、算法及机器学习等热门领域,助你全面提升技术能力。无论你是初学者还是资深开发者,都能从中找到适合自己的学习资源,从《Python编程:从入门到实践》到《深度学习入门》,每一本书都将是你技术成长道路上的良师益友,帮助你在瞬息万变的技术浪潮中站稳脚跟,稳步前行。
127 2
|
8月前
|
算法 人工智能 缓存
CSDN官方创作助手InsCode AI 教你分分钟搞定一篇好文章
CSDN官方创作助手InsCode AI 教你分分钟搞定一篇好文章
73 0
CSDN官方创作助手InsCode AI 教你分分钟搞定一篇好文章
|
8月前
|
JavaScript
好玩且有趣的知识!!!(你绝对感兴趣)
好玩且有趣的知识!!!(你绝对感兴趣)
32 1
|
SQL C# 数据库
C#模仿腾讯QQ源码下载(附效果图)_张童瑶的博客
该源码是C#语言+SQL Server数据库,开发的一套模仿腾讯QQ的功能,可以实现即时聊天,发送抖动窗口,开通会员,充值Qb,后台管理等等众多功能。源代码里面都有大量注释,都是重量级的代码,学习还是不错的。该模仿腾讯QQ源代码仅用于学习使用,不可商业出售。
148 0
|
前端开发 JavaScript
给WordPress博客的Pix主题接入一言接口,随机展示一句语录
首先我们需要找到WordPress的主题文件夹,找到PIX主题,
341 0
|
SQL 数据库 Python
【Python】年终csdn数据不好看,我悄悄用了这个方法
本文主要是讲解如何使用巧妙的方法提升csdn文章的浏览量
134 0
【Python】年终csdn数据不好看,我悄悄用了这个方法
|
机器学习/深度学习 人工智能 网络协议
手把手教你获得CSDN徽章:CSDN IT冷知识 每日一练(三)
手把手教你获得CSDN徽章:CSDN IT冷知识 每日一练
521 0
|
算法 安全 关系型数据库
手把手教你获得CSDN徽章:CSDN IT冷知识 每日一练(一)
手把手教你获得CSDN徽章:CSDN IT冷知识 每日一练
293 0
|
Web App开发 Dart 搜索推荐
手把手教你获得CSDN徽章:CSDN IT冷知识 每日一练(二)
手把手教你获得CSDN徽章:CSDN IT冷知识 每日一练
383 0