详解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 30 Javascript
JavaScript字符串String和Array操作的有趣方法
Dec 18 Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
Nov 03 Javascript
js限制文本框只能输入中文的方法
Aug 11 Javascript
js脚本分页代码分享(7种样式)
Aug 19 Javascript
js省市联动效果完整实例代码
Dec 09 Javascript
Node.js 实现简单小说爬虫实例
Nov 18 Javascript
Vue.js路由组件vue-router使用方法详解
Dec 02 Javascript
vue引入swiper插件的使用实例
Jul 19 Javascript
Vue工程模板文件 webpack打包配置方法
Dec 26 Javascript
微信小程序云开发之模拟后台增删改查
May 16 Javascript
JavaScript 生成唯一ID的几种方式
Feb 19 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
php操作mysql数据库的基本类代码
2014/02/25 PHP
Laravel重定向,a链接跳转,控制器跳转示例
2019/10/22 PHP
PHP执行普通shell命令流程解析
2020/08/24 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
javascript常用的方法分享
2015/07/01 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
2015/12/15 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
Vue页面切换和a链接的本质区别详解
2019/11/12 Javascript
Vue项目移动端滚动穿透问题的实现
2020/05/19 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
Django如何实现内容缓存示例详解
2017/09/24 Python
Python使用cx_Oracle调用Oracle存储过程的方法示例
2017/10/07 Python
python 2.7.14安装图文教程
2018/04/08 Python
Python 通过截图匹配原图中的位置(opencv)实例
2019/08/27 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
Django操作session 的方法
2020/03/09 Python
Matplotlib使用Cursor实现UI定位的示例代码
2020/03/12 Python
Django查询优化及ajax编码格式原理解析
2020/03/25 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
以设计师精品品质提供快速时尚:Mostata
2019/05/10 全球购物
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
应聘医药代表职位求职信
2013/10/21 职场文书
《盲人摸象》教学反思
2014/02/16 职场文书
二人合伙经营协议书
2014/09/13 职场文书
校园运动会广播稿
2014/10/06 职场文书
办公室个人总结
2015/02/28 职场文书
党员读书活动心得体会
2016/01/14 职场文书
一次线上mongo慢查询问题排查处理记录
2022/03/18 MongoDB
Spring IOC容器Bean的作用域及生命周期实例
2022/05/30 Java/Android