详解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 string 扩展库代码
Apr 09 Javascript
file模式访问网页时iframe高度自适应解决方案
Jan 16 Javascript
关于include标签导致js路径找不到的问题分析及解决
Jul 09 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
Jan 10 Javascript
一个简单的jquery的多选下拉框(自写)
May 05 Javascript
浅谈jquery的map()和each()方法
Jun 12 Javascript
简单实现IONIC购物车功能
Jan 10 Javascript
mui上拉加载功能实例详解
Apr 13 Javascript
AngularJS实现进度条功能示例
Jul 05 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
May 28 jQuery
Bootstrap Table列宽拖动的方法
Aug 15 Javascript
js尾调用优化的实现
May 23 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
IIS6的PHP最佳配置方法
2007/03/19 PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
2011/12/16 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
JavaScript初学者需要了解10个小技巧
2010/08/25 Javascript
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
基于 Docker 开发 NodeJS 应用
2014/07/30 NodeJs
javascript实现浏览器窗口传递参数的方法
2014/09/03 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
2016/05/25 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
微信开发 微信授权详解
2016/10/21 Javascript
js 获取今天以及过去日期
2017/04/11 Javascript
vue.js 实现点击展开收起动画效果
2018/07/07 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
nodejs对项目下所有空文件夹创建gitkeep的方法
2019/08/02 NodeJs
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
vue添加自定义右键菜单的完整实例
2020/12/08 Vue.js
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
使用python实现CGI环境搭建过程解析
2020/04/28 Python
基于keras中的回调函数用法说明
2020/06/17 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
学校安全检查制度
2014/01/27 职场文书
大学生社团活动总结
2014/04/26 职场文书
群众路线教育实践活动批评与自我批评
2014/09/15 职场文书
先进基层党组织材料
2014/12/25 职场文书
茶楼服务员岗位职责
2015/02/09 职场文书
售后服务质量承诺书
2015/04/29 职场文书
篮球拉拉队口号
2015/12/25 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python
如何通过一篇文章了解Python中的生成器
2022/04/02 Python