详解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 相关文章推荐
通过jquery的$.getJSON做一个跨域ajax请求试验
May 03 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
Nov 17 Javascript
js 实现浏览历史记录示例
Apr 20 Javascript
jQuery选择器全集详解
Nov 24 Javascript
jQuery实现图片上传和裁剪插件Croppie
Nov 29 Javascript
JavaScript Promise 用法
Jun 14 Javascript
JavaScript中三种常见的排序方法
Feb 24 Javascript
JS实现评价的星星功能
Aug 20 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
Jul 08 Javascript
Vue发布项目实例讲解
Jul 17 Javascript
解决vuecli3中img src 的引入问题
Aug 04 Javascript
Vue实现随机验证码功能
Dec 29 Vue.js
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
WINDOWS 2000下使用ISAPI方式安装PHP
2006/09/05 PHP
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
PHP两种去掉数组重复值的方法比较
2014/06/19 PHP
php从数据库中获取数据用ajax传送到前台的方法
2018/08/20 PHP
PHP序列化的四种实现方法与横向对比
2018/11/29 PHP
php7 参数、整形及字符串处理机制修改实例分析
2020/05/25 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
基于jquery的拖动布局插件
2011/11/25 Javascript
jquery 循环显示div的示例代码
2013/10/18 Javascript
js清理Word格式示例代码
2014/02/13 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
2015/06/23 Javascript
JavaScript中的prototype原型学习指南
2016/05/09 Javascript
Jquery中map函数的用法
2016/06/03 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
2017/02/15 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
浅析Vue 和微信小程序的区别、比较
2018/08/03 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
vue实现表格合并功能
2020/12/01 Vue.js
浅谈python为什么不需要三目运算符和switch
2016/06/17 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
python如何爬取个性签名
2018/06/19 Python
Python 使用Numpy对矩阵进行转置的方法
2019/01/28 Python
基于python实现学生信息管理系统
2019/11/22 Python
python 弧度与角度互转实例
2020/04/15 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
管理信息系学生的自我评价
2014/01/11 职场文书
社区巾帼文明岗事迹材料
2014/06/03 职场文书
区域销售主管岗位职责
2014/06/15 职场文书
节能环保家庭事迹材料
2014/08/27 职场文书
车辆转让协议书
2014/09/24 职场文书
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
如何写贫困证明申请书
2014/10/29 职场文书
为什么MySQL选择Repeatable Read作为默认隔离级别
2021/07/26 MySQL
python中 .npy文件的读写操作实例
2022/04/14 Python