详解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 相关文章推荐
js Form.elements[i]的使用实例
Nov 13 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
Sep 01 Javascript
JavaScript中的Math.E属性使用详解
Jun 12 Javascript
实现非常简单的js双向数据绑定
Nov 06 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
Mar 01 Javascript
JavaScript必知必会(十) call apply bind的用法说明
Jun 08 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
Sep 14 Javascript
JS实现异步上传压缩图片
Apr 22 Javascript
ReactNative Image组件使用详解
Aug 07 Javascript
如何理解Vue的render函数的具体用法
Aug 30 Javascript
vue中如何使用ztree
Feb 06 Javascript
Vue实现图书管理案例
Jan 20 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
第4章 数据处理-php数组的处理-郑阿奇
2011/07/04 PHP
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
JS实现的网页倒计时数字时钟效果
2015/03/02 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
jQuery操作Table技巧大汇总
2016/01/23 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
AngularJS在IE8的不支持的解决方法
2016/05/13 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
使用jsonp实现跨域获取数据实例讲解
2016/12/25 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
Node.js 异步异常的处理与domain模块解析
2017/05/10 Javascript
vue实现app页面切换动画效果实例
2017/05/23 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
2019/11/01 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
2020/01/16 Javascript
Vue结合路由配置递归实现菜单栏功能
2020/06/16 Javascript
Python将多份excel表格整理成一份表格
2018/01/03 Python
Python使用functools实现注解同步方法
2018/02/06 Python
Python3.5实现的三级菜单功能示例
2019/03/25 Python
python OpenCV GrabCut使用实例解析
2019/11/11 Python
Python中如何添加自定义模块
2020/06/09 Python
详解CSS3中字体平滑处理和抗锯齿渲染
2017/03/29 HTML / CSS
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
信息技术专业大学生职业生涯规划书
2014/01/24 职场文书
运动会通讯稿200字
2014/02/16 职场文书
战友聚会策划方案
2014/06/13 职场文书
车辆委托书范本
2014/10/05 职场文书
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
邀请函的格式
2015/01/30 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
对学校的意见和建议
2015/06/04 职场文书
pytorch Dropout过拟合的操作
2021/05/27 Python
Mysql中@和@@符号的详细使用指南
2022/06/05 MySQL