手把手带你复刻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


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

目录
相关文章
|
6月前
|
存储 运维 安全
隐语第二期学习内容随笔
数据要素在采集、存储等环节内外循环,数据持有方需确保内外循环中的数据安全与管控。信任焦虑源于数据权属等问题,依赖技术信任解决。隐私计算原则与开源隐语技术保障隐私安全。数据资产化驱动价值释放,技术信任促进流通,强调数据安全、隐私和信任的核心地位。
45 0
|
21天前
|
SQL 人工智能 自然语言处理
2024年代码大模型论文精选第五期
本文整理了2024年9月至10月中旬全球各大高校与科研机构发布的70篇代码大模型相关论文,涵盖基座模型、代码微调、测试基准、代码Agent、代码生成、SQL生成、漏洞检测与修复等多个主题。文章详细介绍了各篇论文的主要内容和创新点,并提供了链接和发布机构信息。全文篇幅较长,建议电脑端阅读。若想了解更多相关内容,可关注我们的代码大模型综述和GitHub开源项目。
109 0
|
3月前
|
人工智能 自然语言处理
🚀从菜鸟到大师,一文读懂生成式大模型“提示词工程”的进阶秘籍✨
【8月更文挑战第1天】在人工智能领域,生成式大模型如GPT和DALL-E正引领着创意的新纪元。本文通过案例逐步解析“提示词工程”的精髓:从基础的直接提示,进化到富含细节与情感的进阶版本,再到结合模板与随机性的大师级应用。例如,创作环保主题文章时,从简单指示到强调个人行动与自然之美;生成印象派风格的日出海景图时,详述光线、色彩等元素。随着技巧提升,还可利用基础模板加随机提示的方式确保创意与质量并重。掌握这些秘籍,你也能驾驭AI,释放无限可能。
95 7
|
6月前
|
开发工具 数据库 git
通俗易懂!看漫画学Python入门教程(全彩版)Git首发破万Star
很多编程语言书读起来都略显晦涩,让不少读者望而却步,很难坚持读完。关老师的新书另辟蹊径,以漫画形式切入,生动有趣,把复杂的技术点和编程知识讲解得通俗易懂真正体现了一图胜干言的道理。而且每章结束时都有“练一练”环节,能够帮助读者夯实基础、锻炼技能。不得不说,这是一本Python入门和进阶佳作。
|
6月前
|
算法 人工智能 缓存
CSDN官方创作助手InsCode AI 教你分分钟搞定一篇好文章
CSDN官方创作助手InsCode AI 教你分分钟搞定一篇好文章
68 0
CSDN官方创作助手InsCode AI 教你分分钟搞定一篇好文章
|
6月前
|
测试技术 开发工具 数据库
动漫网站的设计与实现(源码+论文)_kaic
动漫网站的设计与实现(源码+论文)_kaic
如何利用ChatPDF快速阅读英文论文,帮你写文章
如何利用ChatPDF快速阅读英文论文,帮你写文章
164 0
|
机器学习/深度学习 uml
CSDN发文Markdown语法助手
CSDN发文Markdown语法助手
94 0
CSDN发文Markdown语法助手
|
前端开发
带你读书之“红宝书”:第三章 语法基础(上)之 关键词后续
带你读书之“红宝书”:第三章 语法基础(上)之 关键词后续
95 0
带你读书之“红宝书”:第三章 语法基础(上)之 关键词后续
|
存储 前端开发 Linux
Markdown语法实战教学,从0到1
它的语法及其简单,看了本文,本🐱保证必然可以学会,接触之后你将不想在日常使用中触碰到那烦人的Word。对于那些运营者学会使用Markdown对于你的工作将是质的提升。 Markdown还是纯文本且拥有极强的可移植性,例如在Linux中你可能使用Word对你来说是一种阻碍,但Markdown则不会有此烦恼,对于Markdown来讲你可以在任何操作系统来运行创建它,例如:iPad OS、Mac OS、Linux、Windows、Android等。
154 0
Markdown语法实战教学,从0到1