详解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实用小函数使用介绍
Nov 11 Javascript
js实现的四级左侧网站分类菜单实例
May 06 Javascript
Javascript缓存API
Jun 14 Javascript
javascript汉字拼音互转的简单实例
Oct 09 Javascript
MUI  Scroll插件的使用详解
Apr 13 Javascript
微信小程序canvas写字板效果及实例
Jun 15 Javascript
JS设计模式之单例模式(一)
Sep 29 Javascript
详解jQuery-each()方法
Mar 13 jQuery
javascript防抖函数debounce详解
Jun 11 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
Aug 03 Javascript
详解vue组件之间的通信
Aug 30 Javascript
vue v-model的用法解析
Oct 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
PHP 和 MySQL 基础教程(一)
2006/10/09 PHP
php遍历删除整个目录及文件的方法
2015/03/13 PHP
typecho插件编写教程(五):核心代码
2015/05/28 PHP
php操作memcache缓存方法分享
2015/06/03 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
2015/09/20 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
2017/06/09 PHP
PHP设计模式之建造者模式定义与用法简单示例
2018/08/13 PHP
javascript笔试题目附答案@20081025_jb51.net
2008/10/26 Javascript
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
2012/10/11 Javascript
js控制frameSet示例
2013/09/10 Javascript
jQuery Validation Engine验证控件调用外部函数验证的方法
2017/01/18 Javascript
微信小程序 后台登录(非微信账号)实例详解
2017/03/31 Javascript
使用vue-cli创建项目的图文教程(新手入门篇)
2018/05/02 Javascript
小程序图片长按识别功能的实现方法
2018/08/30 Javascript
给localStorage设置一个过期时间的方法分享
2018/11/06 Javascript
NodeJs操作MongoDB教程之分页功能以及常见问题
2019/04/09 NodeJs
js中arguments对象的深入理解
2019/05/14 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
[48:52]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第一局
2016/02/25 DOTA
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
Python异常处理操作实例详解
2018/08/28 Python
Python中logger日志模块详解
2020/08/04 Python
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
单位办理社保介绍信
2014/01/10 职场文书
《春晓》教学反思
2014/04/20 职场文书
我们的节日清明节活动总结
2014/04/30 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
领导班子个人查摆问题对照检查材料
2014/10/02 职场文书
社区学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
小学家长意见怎么写
2015/06/03 职场文书
2016年七夕情人节宣传语
2015/11/25 职场文书
五星级酒店宣传口号
2015/12/25 职场文书
matlab xlabel位置的设置方式
2021/05/21 Python