Insignia实例API完全手册:掌握addItem、removeItem等关键方法
Insignia实例API完全手册掌握addItem、removeItem等关键方法【免费下载链接】insignia Customizable tag input. Progressive. No non-sense!项目地址: https://gitcode.com/gh_mirrors/in/insigniaInsignia是一个轻量级的可定制标签输入库提供了直观的API来管理标签的添加、删除和查询操作。本文将详细介绍Insignia实例的核心API方法帮助开发者快速掌握如何使用这些方法构建交互式标签输入功能。核心API概览Insignia实例通过简单的API提供了完整的标签管理功能主要包括以下方法添加标签addItem(data)删除标签removeItem(data)、removeItemByElement(el)查询标签findItem(data)、findItemIndex(data)、findItemByElement(el)实例管理destroy()这些方法定义在insignia.js文件中通过实例化后的对象暴露给开发者使用。标签添加addItem方法addItem方法是向标签输入框添加新标签的核心接口它接受一个数据参数并创建对应的标签元素。基本用法// 假设insignia实例已创建 const tagInput insignia(inputElement); // 添加文本标签 tagInput.addItem(JavaScript); // 添加对象类型标签需配置getValue和getText选项 tagInput.addItem({ id: 1, name: TypeScript });方法解析在insignia.js中定义function addItem (data) { const valid validate(data); const item { data, valid }; if (o.preventInvalid !valid) { return api; } const el renderItem(item); if (!el) { return api; } item.el el; currentValues.push(item); api.emit(add, data, el); invalidate(); return api; }关键点自动验证标签有效性通过validate函数支持自定义渲染通过renderItem添加成功后触发add事件链式调用支持返回api实例标签删除removeItem系列方法Insignia提供了多种删除标签的方式满足不同场景的需求。removeItemByData通过数据对象删除对应的标签// 删除文本标签 tagInput.removeItem(JavaScript); // 删除对象标签 tagInput.removeItem({ id: 1, name: TypeScript });实现代码insignia.jsfunction removeItemByData (data) { return removeItem(findItem(data)); }removeItemByElement通过DOM元素引用删除对应的标签// 获取标签元素 const tagElement document.querySelector(.nsg-tag); // 通过元素删除标签 tagInput.removeItemByElement(tagElement);实现代码insignia.jsfunction removeItemByElement (el) { return removeItem(findItem(el, el)); }删除流程查找标签数据或元素移除DOM元素更新内部数据存储触发remove事件标签查询findItem系列方法Insignia提供了灵活的标签查询功能可通过数据或元素查找标签。findItem根据数据查找标签项const tag tagInput.findItem(JavaScript); if (tag) { console.log(找到标签:, tag.data); }实现代码insignia.jsfunction findItem (value, propdata) { const comp (prop data ? item getValue(item[prop]) getValue(value) : item item[prop] value ); for (let i 0; i currentValues.length; i) { if (comp(currentValues[i])) { return currentValues[i]; } } return null; }findItemIndex获取标签在列表中的索引位置const index tagInput.findItemIndex(JavaScript); if (index ! null) { console.log(标签索引:, index); }findItemByElement通过DOM元素查找对应的标签数据const tagElement document.querySelector(.nsg-tag); const tag tagInput.findItemByElement(tagElement);实例销毁destroy方法当不再需要标签输入功能时使用destroy方法清理资源// 销毁实例 tagInput.destroy();实现代码insignia.jsfunction destroy () { bind(true); el.value ; el.className el.className.replace(inputClass, ); parent.className parent.className.replace(editorClass, ); if (before.parentElement) { before.parentElement.removeChild(before); } if (after.parentElement) { after.parentElement.removeChild(after); } shrinker.destroy(); api.destroyed true; api.destroy api.addItem api.removeItem () api; api.tags api.value () null; return api; }清理操作移除事件监听清除输入框内容恢复DOM结构释放相关资源实际应用示例以下是一个综合使用Insignia API的示例// 初始化Insignia const input document.getElementById(tag-input); const tagInput insignia(input, { delimiter: ,, deletion: true, validate: (data) data.trim().length 0 }); // 添加初始标签 [HTML, CSS, JavaScript].forEach(tag { tagInput.addItem(tag); }); // 查找并删除标签 const cssTag tagInput.findItem(CSS); if (cssTag) { tagInput.removeItem(cssTag.data); } // 监听添加事件 tagInput.on(add, (data, el) { console.log(添加新标签:, data); }); // 页面卸载时销毁实例 window.addEventListener(unload, () { tagInput.destroy(); });总结Insignia通过简洁而强大的API使开发者能够轻松实现自定义标签输入功能。核心方法包括addItem添加新标签removeItem/removeItemByElement删除标签findItem系列查询标签destroy清理实例这些方法在insignia.js中实现提供了灵活的标签管理能力。通过合理使用这些API可以构建出交互友好、功能完善的标签输入组件。【免费下载链接】insignia Customizable tag input. Progressive. No non-sense!项目地址: https://gitcode.com/gh_mirrors/in/insignia创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Velociraptor核心功能全解析:从环境变量到Git Hooks的完整指南

Velociraptor核心功能全解析:从环境变量到Git Hooks的完整指南

Velociraptor核心功能全解析:从环境变量到Git Hooks的完整指南 【免费下载链接】velociraptor The npm-style script runner for Deno 项目地址: https://gitcode.com/gh_mirrors/vel/velociraptor Velociraptor 是一款专为 Deno 设计的 npm 风格脚本运行器&…

2026/10/17 8:40:33 阅读更多 →
Git Worktree:AI编程时代的多任务并行开发与上下文隔离神器

Git Worktree:AI编程时代的多任务并行开发与上下文隔离神器

1. 项目概述:为什么在AI编程时代,你需要重新认识Git Worktree?如果你还在用传统的Git分支切换来应对多任务并行,尤其是在AI编程工具(如Cursor、GitHub Copilot)日益普及的今天,那你可能正在经历…

2026/10/17 21:09:34 阅读更多 →
test-data-bot最佳实践:提升单元测试效率的7个技巧

test-data-bot最佳实践:提升单元测试效率的7个技巧

test-data-bot最佳实践:提升单元测试效率的7个技巧 【免费下载链接】test-data-bot 项目地址: https://gitcode.com/gh_mirrors/te/test-data-bot test-data-bot是一款受Factory Bot启发的测试数据生成工具,专为提升单元测试效率设计。它通过灵活…

2026/10/17 8:41:00 阅读更多 →

最新新闻

接手一座产业园,先盘清这十件事

接手一座产业园,先盘清这十件事

产业园管理内容拆解:看着庞杂,其实可以拆成十个模块,新接手先盘一遍。一位朋友前阵子空降到一家产业园当总经理。上任头两周,他被十个部门轮番“要说法”:招商部说线索不够,物业部说维修费超了,…

2026/10/18 7:34:04 阅读更多 →
artcraft:微内核+插件化创意工具框架的设计与实现

artcraft:微内核+插件化创意工具框架的设计与实现

1. 项目缘起与整体设计思路1.1 为什么会有 artcraft 这个想法做创意工具这些年,我最大的感受就是:大部分所谓的“创作辅助工具”,其实都在帮倒忙。你要么被一堆参数面板淹没,要么被强制绑定某个平台、某种格式,最后做出…

2026/10/18 7:34:04 阅读更多 →
开源多智能体工作台:从零构建可编排的Agent协作流程

开源多智能体工作台:从零构建可编排的Agent协作流程

如果你试过一个AI助手在单个对话里“一条路走到黑”,就能明白为什么我会去折腾AllBeingsFuture这套开源AI多智能体工作台。它解决的问题很具体:当任务需要“调研→拆解→执行→质检→汇总”五步,每个步骤需要不同角色、不同上下文和不同工具时…

2026/10/18 7:34:04 阅读更多 →
基于Spring Boot与MySQL的数学题库自动组卷系统设计与实现

基于Spring Boot与MySQL的数学题库自动组卷系统设计与实现

1. 为什么要把组卷这件事单独做成一个系统先说个我自己的体会。接触过不少教学管理类的业务,最容易被低估的就是组卷需求。你以为是简单的"从题库里随机抽几道题",但真正用起来才知道,老师要的不只是随机,而是可控的随机…

2026/10/18 7:34:04 阅读更多 →
分布式事务与BASE理论:从最终一致性到柔性事务落地实践

分布式事务与BASE理论:从最终一致性到柔性事务落地实践

先还原一个场景:一笔订单要同时扣库存、扣账户余额、加积分,放在单体应用里是一条数据库事务解决的问题,拆成微服务之后就麻烦了——数据库事务管不到其他服务的表,扣款成功但库存没扣、订单生成但积分没加,这一类“看…

2026/10/18 7:34:04 阅读更多 →
【信息科学与工程学】【通信工程】第二百四十四篇 通信网络中的流量类型01

【信息科学与工程学】【通信工程】第二百四十四篇 通信网络中的流量类型01

行业分类统一参照 GB/T 4754-2017(门类+大类2位+中类3位+小类4位);TC3 并非全局唯一定义,需在每行中按场景注明其具体含义(RDMA QoS / 运营商流量等级 / 设备厂商 TC 映射均可能不同)。 编号 类型 行业大类(GB/T 4754) 行业中类 行业小类 智算中心/企业网/数据中心…

2026/10/18 7:33:04 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →