详解JavaScript添加给定的标签选项


Posted in Javascript onSeptember 17, 2018

先看看效果图:

详解JavaScript添加给定的标签选项

代码实现:

HTML代码:

<h3>haveTags</h3>
<div id="havetags"></div>
<hr />
<h3>addTags</h3>
<div id="addtags"></div>
<button id="btn">返回的数组</button>

css代码:

#havetags span,
#addtags span {
 display: inline-block;
 padding: 0 0 0 10px;
 margin: 2px 5px;
 border: 1px solid #000;
}
 
#havetags span::after,
#addtags span::after {
 content: "+";
 display: inline-block;
 padding: 0 10px;
 background-color: #00ffff;
 margin-left: 5px;
}
 
#addtags span::after {
 content: "x";
}

js代码:

// 拥有的标签
var haveArr = ["HTML", "CSS", "JavaScript", "jQuery", "Vue", "Bootstrap"];
 
// 添加的标签
var addArr = ["PHP", "MySQL"];
 
/**
 * [tagsShow 展示拥有的标签]
 * @param {[String]} haveTagsId [展示拥有标签的HTML标签Id]
 * @param {[String]} addTagsId [展示添加标签的HTML标签Id]
 * @param {[Array]} haveTags [拥有标签的数组]
 * @param {[Array]} addTags [添加标签的数组]
 */
function tagsShow(haveTagsId, addTagsId, haveTags, addTags) {
 
 for(var i = 0; i < haveTags.length; i++) {
 
  document.getElementById(haveTagsId).innerHTML += "<span>" + haveTags[i] + "</span>";
 
 }
 
 addTag(haveTagsId, addTagsId, haveArr, addArr);
 
 for(var i = 0; i < addTags.length; i++) {
 
  document.getElementById(addTagsId).innerHTML += "<span>" + addTags[i] + "</span>";
 
 }
 
 delTag(haveTagsId, addTagsId, haveTags, addTags);
 
}
 
/**
 * 添加标签
 * @param {[String]} haveTagsId [展示拥有标签的HTML标签Id]
 * @param {[String]} addTagsId [展示添加标签的HTML标签Id]
 * @param {[Array]} haveTags [拥有标签的数组]
 * @param {[Array]} addTags [添加标签的数组]
 */
function addTag(haveTagsId, addTagsId, haveTags, addTags) {
 
 var len = document.getElementById(haveTagsId).children.length;
 
 for(var i = 0; i < len; i++) {
 
  document.getElementById(haveTagsId).children[i].onclick = function() {
 
   this.remove();
 
   addTags.push(this.innerHTML);
 
   document.getElementById(addTagsId).innerHTML += "<span>" + this.innerHTML + "</span>";
 
   haveTags.splice(haveTags.indexOf(this.innerHTML), 1); // 从数组中删除该元素
 
   delTag(haveTagsId, addTagsId, haveTags, addTags);
  }
 
 }
 
}
 
/**
 * 删除标签
 * @param {[String]} haveTagsId [展示拥有标签的HTML标签Id]
 * @param {[String]} addTagsId [展示添加标签的HTML标签Id]
 * @param {[Array]} haveTags [拥有标签的数组]
 * @param {[Array]} addTags [添加标签的数组]
 */
function delTag(haveTagsId, addTagsId, haveTags, addTags) {
 
 var len = document.getElementById(addTagsId).children.length;
 
 for(var i = 0; i < len; i++) {
 
  document.getElementById(addTagsId).children[i].onclick = function() {
 
   this.remove();
 
   haveTags.push(this.innerHTML);
 
   document.getElementById(haveTagsId).innerHTML += "<span>" + this.innerHTML + "</span>";
 
   addTags.splice(addTags.indexOf(this.innerHTML), 1); // 从数组中删除该元素
 
   addTag(haveTagsId, addTagsId, haveTags, addTags);
 
  }
 
 }
 
}
 
// 展示标签
tagsShow('havetags', 'addtags', haveArr, addArr);
 
// 最终数组
document.getElementById("btn").onclick = function() {
 
 console.log(haveArr);
 
 console.log(addArr);
 
}

以上就是JavaScript如何实现添加给定的标签选项?(代码实例)的详细内容,更多请关注php中文网其它相关文章!

Javascript 相关文章推荐
javascript 设为首页与加入收藏兼容多浏览器代码
Jan 11 Javascript
JQuery 使用attr方法实现下拉列表选中
Oct 13 Javascript
关于JS中的apply,call,bind的深入解析
Apr 05 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
May 25 Javascript
BootStrap实现带有增删改查功能的表格(DEMO详解)
Oct 26 Javascript
js实现的在线调色板功能完整实例
Dec 21 Javascript
bootstrap Table服务端处理分页(后台是.net)
Oct 19 Javascript
javascript用rem来做响应式开发
Jan 13 Javascript
微信小程序自定义底部弹出框
Nov 16 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
Jun 14 Javascript
vue.js实现备忘录demo
Jun 26 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
Jul 20 Javascript
Element-ui tree组件自定义节点使用方法代码详解
Sep 17 #Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
Sep 16 #Javascript
在Vue-cli里应用Vuex的state和mutations方法
Sep 16 #Javascript
分享5个好用的javascript文件上传插件
Sep 16 #Javascript
vuex直接赋值的三种方法总结
Sep 16 #Javascript
vue 实现边输入边搜索功能的实例讲解
Sep 16 #Javascript
vue2过滤器模糊查询方法
Sep 16 #Javascript
You might like
利用文件属性结合Session实现在线人数统计
2006/10/09 PHP
CI映射(加载)数据到view层的方法
2016/03/28 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
jquery中动态效果小结
2010/12/16 Javascript
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
jQuery如何将选中的对象转化为原始的DOM对象
2014/06/09 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
jquery实现submit提交表单
2015/02/03 Javascript
js 右侧浮动层效果实现代码(跟随滚动)
2015/11/22 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
node.js通过axios实现网络请求的方法
2018/03/05 Javascript
webstorm+vue初始化项目的方法
2018/10/18 Javascript
node全局变量__dirname与__filename的区别
2019/01/14 Javascript
vue实现鼠标经过动画
2019/10/16 Javascript
node.js使用zlib模块进行数据压缩和解压操作示例
2020/02/12 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
2019/07/06 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
opencv-python 读取图像并转换颜色空间实例
2019/12/09 Python
python中threading开启关闭线程操作
2020/05/02 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
新浪网技术部笔试题
2016/08/26 面试题
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
广告业务员岗位职责
2014/02/06 职场文书
高中军训感想800字
2014/02/23 职场文书
人力资源主管职责范本
2014/03/05 职场文书
社会体育专业大学生职业生涯规划书
2014/09/17 职场文书
卫校毕业生自我鉴定
2014/09/28 职场文书
文员转正自我鉴定怎么写
2014/09/29 职场文书
村干部群众路线教育活动对照检查材料
2014/10/01 职场文书
领导干部作风建设自查报告
2014/10/23 职场文书
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers
Django框架中视图的用法
2022/06/10 Python
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技