详解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 URL编码和解码使用说明
Apr 12 Javascript
EditPlus注册码生成器(js代码实现)
Mar 25 Javascript
js中各种类型的变量在if条件中是true还是false
Jul 16 Javascript
js实现遮罩层划出效果是生成div而不是显示
Jul 29 Javascript
JavaScript基本语法学习教程
Jan 14 Javascript
JQuery点击行tr实现checkBox选中的简单实例
May 26 Javascript
利用node.js如何搭建一个简易的即时响应服务器
May 28 Javascript
jquery对table做排序操作的实例演示
Aug 10 jQuery
JS实现字符串去重及数组去重的方法示例
Apr 21 Javascript
Vue递归实现树形菜单方法实例
Nov 06 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
Nov 08 Javascript
Ajax 的初步实现(使用vscode+node.js+express框架)
Jun 18 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
延长phpmyadmin登录时间的方法
2011/02/06 PHP
PHP中用hash实现的数组
2011/07/17 PHP
PHP+MYSQL会员系统的开发实例教程
2014/08/23 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
PHP数组常用函数实例小结
2018/08/20 PHP
PHP自动生成缩略图函数的源码示例
2019/03/18 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
2020/11/10 PHP
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
HTML,CSS,JavaScript速查表推荐
2014/12/02 Javascript
jQuery中ajax的get()方法用法实例
2014/12/26 Javascript
创建你的第一个AngularJS应用的方法
2015/06/16 Javascript
javascript实现下拉提示选择框
2015/12/29 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
vue实现动态按钮功能
2019/05/13 Javascript
小程序Request的另类用法详解
2019/08/09 Javascript
解决Layui中layer报错的问题
2019/09/03 Javascript
Vue使用Ref跨层级获取组件的步骤
2021/01/25 Vue.js
python用ConfigObj读写配置文件的实现代码
2013/03/04 Python
Python 查看文件的读写权限方法
2018/01/23 Python
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
苹果中国官方网站:Apple中国
2016/07/22 全球购物
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
编辑个人求职信范文
2013/09/21 职场文书
剪枝的学问教学反思
2014/02/07 职场文书
警校毕业生自我评价
2014/04/06 职场文书
期末评语大全
2014/05/04 职场文书
电气工程及其自动化专业毕业生自荐信
2014/06/21 职场文书
二手房购房协议书范本
2014/10/05 职场文书
创业计划书之个人工作室
2019/08/22 职场文书
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android
Github 使用python对copilot做些简单使用测试
2022/04/14 Python