详解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 div 弹出可拖动窗口
Feb 26 Javascript
js取滚动条的尺寸的函数代码
Nov 30 Javascript
仿微博字符限制效果实现代码
Apr 20 Javascript
window.onload使用指南
Sep 13 Javascript
探寻JavaScript中this指针指向
Apr 23 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
Aug 23 Javascript
微信小程序实现实时圆形进度条的方法示例
Feb 24 Javascript
Node.js中DNS模块学习总结
Feb 28 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
Jul 11 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
Oct 31 Javascript
使用原生JS实现滚轮翻页效果的示例代码
May 31 Javascript
JavaScript常用进制转换及位运算实例解析
Oct 14 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
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
2014/10/30 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
PHP数据库表操作的封装类及用法实例详解
2016/07/12 PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
2016/07/20 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
Mootools 1.2教程 选项卡效果(Tabs)
2009/09/15 Javascript
js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件
2014/01/27 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
jquery中radio checked问题
2015/03/16 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
JavaScript的this关键字的理解
2016/06/18 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
jQuery自制提示框tooltip改进版
2016/08/01 Javascript
jQuery中ScrollTo用法示例
2016/09/04 Javascript
原生的强大DOM选择器querySelector介绍
2016/12/21 Javascript
JS实现列表页面隔行变色效果
2017/03/25 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
微信小程序实现同一页面取值的方法分析
2019/04/30 Javascript
Vue 刷新当前路由的实现代码
2019/09/26 Javascript
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
p5.js实现动态图形临摹
2019/10/23 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
封装Vue Element的table表格组件的示例详解
2020/08/19 Javascript
[48:00]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第二场 11.04
2020/11/04 DOTA
python opencv 二值化 计算白色像素点的实例
2019/07/03 Python
python如何把字符串类型list转换成list
2020/02/18 Python
Python使用windows设置定时执行脚本
2020/11/12 Python
使用HTML5的表单验证的简单示例
2015/09/09 HTML / CSS
洲际酒店集团大中华区:IHG中国
2016/08/17 全球购物
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
学期自我鉴定
2013/11/04 职场文书
药剂专业学生求职信范文
2013/12/28 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
html解决浏览器记住密码输入框的问题
2023/05/07 HTML / CSS