详解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判断文件是否存在
Dec 31 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
May 22 Javascript
js设置控件的隐藏与显示的两种方法
Aug 21 Javascript
jQuery DateTimePicker 日期和时间插件示例
Jan 22 Javascript
JavaScript数组和对象的复制
Mar 21 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
Sep 05 jQuery
jQuery插件Validation表单验证详解
May 26 jQuery
Echarts动态加载多条折线图的实现代码
May 24 Javascript
layui点击按钮页面会自动刷新的解决方案
Oct 25 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
Dec 29 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
Jan 26 Javascript
jQuery实现朋友圈查看图片
Sep 11 jQuery
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
php程序之die调试法 快速解决错误
2009/09/17 PHP
php实现过滤UBB代码的类
2015/03/12 PHP
Smarty模板引擎缓存机制详解
2016/05/23 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
基于json的jquery地区联动效果代码
2011/07/06 Javascript
js去空格技巧分别去字符串前后、左右空格
2013/10/21 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
简单实现jQuery轮播效果
2017/08/18 jQuery
简单的vuex 的使用案例笔记
2018/04/13 Javascript
深入理解JavaScript的async/await
2018/08/05 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
Vue匿名插槽与作用域插槽的合并和覆盖行为
2019/04/22 Javascript
解决vue.js提交数组时出现数组下标的问题
2019/11/05 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
2020/02/09 Javascript
解决vue页面刷新,数据丢失的问题
2020/11/24 Vue.js
[02:15]2014DOTA2国际邀请赛 赛后退役选手回顾
2014/08/01 DOTA
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
Python中字典的setdefault()方法教程
2017/02/07 Python
Python使用遗传算法解决最大流问题
2018/01/29 Python
Python文本统计功能之西游记用字统计操作示例
2018/05/07 Python
python入门:这篇文章带你直接学会python
2018/09/14 Python
Python中一个for循环循环多个变量的示例
2019/07/16 Python
Python 实现自动登录+点击+滑动验证功能
2020/06/10 Python
python利用文件时间批量重命名照片和视频
2021/02/09 Python
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
结构工程个人自荐信范文
2013/11/30 职场文书
英语专业毕业生自荐信范文
2013/12/31 职场文书
致长跑运动员广播稿
2014/01/31 职场文书
班级元旦晚会开幕词
2015/01/29 职场文书
技术员岗位职责范本
2015/04/11 职场文书
小马王观后感
2015/06/11 职场文书
党员学习型组织心得体会
2019/06/21 职场文书
Python如何识别银行卡卡号?
2021/06/10 Python
windows server2008 开启端口的实现方法
2022/06/25 Servers