添加标签——给定标签选项

HTML:

1     <h3>haveTags</h3>
2     <div id="havetags"></div>
3     <hr />
4     <h3>addTags</h3>
5     <div id="addtags"></div>
6     <button id="btn">返回的数组</button>

CSS:

 1 #havetags span,
 2 #addtags span {
 3     display: inline-block;
 4     padding: 0 0 0 10px;
 5     margin: 2px 5px;
 6     border: 1px solid #000;
 7 }
 8
 9 #havetags span::after,
10 #addtags span::after {
11     content: "+";
12     display: inline-block;
13     padding: 0 10px;
14     background-color: #00ffff;
15     margin-left: 5px;
16 }
17
18 #addtags span::after {
19     content: "x";
20 }

JavaScript:

  1     // 拥有的标签
  2     var haveArr = ["HTML", "CSS", "JavaScript", "jQuery", "Vue", "Bootstrap"];
  3
  4     // 添加的标签
  5     var addArr = ["PHP", "MySQL"];
  6
  7     /**
  8      * [tagsShow 展示拥有的标签]
  9      * @param  {[String]} haveTagsId [展示拥有标签的HTML标签Id]
 10      * @param  {[String]} addTagsId  [展示添加标签的HTML标签Id]
 11      * @param  {[Array]} haveTags   [拥有标签的数组]
 12      * @param  {[Array]} addTags    [添加标签的数组]
 13      */
 14     function tagsShow(haveTagsId, addTagsId, haveTags, addTags) {
 15
 16         for (var i = 0; i < haveTags.length; i++) {
 17
 18             document.getElementById(haveTagsId).innerHTML += "<span>" + haveTags[i] + "</span>";
 19
 20         }
 21
 22         addTag(haveTagsId, addTagsId, haveArr, addArr);
 23
 24         for (var i = 0; i < addTags.length; i++) {
 25
 26             document.getElementById(addTagsId).innerHTML += "<span>" + addTags[i] + "</span>";
 27
 28         }
 29
 30         delTag(haveTagsId, addTagsId, haveTags, addTags);
 31
 32     }
 33
 34     /**
 35      * 添加标签
 36      * @param  {[String]} haveTagsId [展示拥有标签的HTML标签Id]
 37      * @param  {[String]} addTagsId  [展示添加标签的HTML标签Id]
 38      * @param  {[Array]} haveTags   [拥有标签的数组]
 39      * @param  {[Array]} addTags    [添加标签的数组]
 40      */
 41     function addTag(haveTagsId, addTagsId, haveTags, addTags) {
 42
 43         var len = document.getElementById(haveTagsId).children.length;
 44
 45         for (var i = 0; i < len; i++) {
 46
 47             document.getElementById(haveTagsId).children[i].onclick = function() {
 48
 49                 this.remove();
 50
 51                 addTags.push(this.innerHTML);
 52
 53                 document.getElementById(addTagsId).innerHTML += "<span>" + this.innerHTML + "</span>";
 54
 55                 haveTags.splice(haveTags.indexOf(this.innerHTML), 1); // 从数组中删除该元素
 56
 57                 delTag(haveTagsId, addTagsId, haveTags, addTags);
 58             }
 59
 60         }
 61
 62     }
 63
 64     /**
 65      * 删除标签
 66      * @param  {[String]} haveTagsId [展示拥有标签的HTML标签Id]
 67      * @param  {[String]} addTagsId  [展示添加标签的HTML标签Id]
 68      * @param  {[Array]} haveTags   [拥有标签的数组]
 69      * @param  {[Array]} addTags    [添加标签的数组]
 70      */
 71     function delTag(haveTagsId, addTagsId, haveTags, addTags) {
 72
 73         var len = document.getElementById(addTagsId).children.length;
 74
 75         for (var i = 0; i < len; i++) {
 76
 77             document.getElementById(addTagsId).children[i].onclick = function() {
 78
 79                 this.remove();
 80
 81                 haveTags.push(this.innerHTML);
 82
 83                 document.getElementById(haveTagsId).innerHTML += "<span>" + this.innerHTML + "</span>";
 84
 85                 addTags.splice(addTags.indexOf(this.innerHTML), 1); // 从数组中删除该元素
 86
 87                 addTag(haveTagsId, addTagsId, haveTags, addTags);
 88
 89             }
 90
 91         }
 92
 93     }
 94
 95     // 展示标签
 96     tagsShow(‘havetags‘, ‘addtags‘, haveArr, addArr);
 97
 98     // 最终数组
 99     document.getElementById("btn").onclick = function(){
100
101         console.log(haveArr);
102
103         console.log(addArr);
104
105     }

原文地址:https://www.cnblogs.com/lprosper/p/9404471.html

时间: 2024-10-10 03:17:30

添加标签——给定标签选项的相关文章

js动态添加和删除标签

html代码 <h1>动态添加和删除标签</h1> <div id="addTagTest"> <table> <thead><tr><th>姓名</th><th>年薪</th><th>操作</th></tr></thead> <tbody id="info"> </tbody>

wordpress博客添加3D旋转标签云

为了让自己的博客首页更动感,我们可以添加3D旋转标签云,只需要添加插件即可. 方法如下: 1.登录wp管理后台,选择插件--安装插件,右上角搜索框搜索:WP-Cirrus 找到后选择安装,并启用. 2.外观--小工具--拖动WP-Cirrus到后侧首页功能项里面,保存即可. 3.在WP-Cirrus下拉列表中可以设置标题.标签云的高宽.刷新速度.标签最小值最大值.字体的颜色.背景颜色等等. 4.前提是你的博客中文章设置过标签,否则为空白. 5.刷新首页就能看到旋转的标签云,让你的博客也活泼起来.

清空select标签中option选项的3种不同方式

本文为大家详细介绍下使用3种不同方式来清空select标签中option选项,具体语法格式如下,感兴趣的朋友可以参考下哈,希望对大家有所帮助 方法一 复制代码 代码如下: document.getElementById("selectid").options.length = 0; 方法二 复制代码 代码如下: document.formName.selectName.options.length = 0; 方法三 复制代码 代码如下: document.getElementById(

自学html-four(css初始化及html语义标签 -&gt; h标签 p标签 img标签 有序列表 无序列表 表格 超链接)

一.css初始化 现在我们来做一个简单的测试,测试步骤如下: 1.编写代码如下: 2.把改程序用不同的浏览器打开我们会发现同一份代码在不同的浏览器中的显示会有略微的差别: 360浏览器下显示效果图: 火狐浏览器下显示的效果图: 同一份代码在不同浏览器显示的效果存在差异的原因是:各浏览器对各元素的margin,border,font-size等的初始设置略有不同 解决方法:通过css强制让所有元素的属性值都一样 这里提供一段雅虎工程师css初始化代码,直接拷贝到css位置就可以了,body,div

cocos2d-x之 利用富文本控件解析xhml标签(文字标签,图片标签,换行标签,标签属性)

执行后效果: 前端使用: 后台SuperRichText解析code void SuperRichText::renderNode(tinyxml2::XMLNode *node){ while (node!=nullptr) { if (node->ToText()) { CCLOG("文本信息:%s",node->ToText()->Value()); auto n=node->ToText(); std::u16string text; StringUti

12 自定义标签/JSTL标签库/web国际化/java web之设计模式和案例

EL应用 自定义一个标签,实现两个字符串的相加 1回顾 1.1servlet生命周期 init(ServletConfig) service(ServletRequest,ServletResponse) destory() 1.2回话技术 cookie:浏览器端 (服务器需要浏览器保存少量的数据) 服务器创建对象:new Cookie(name,value) cookie.setMaxage(秒);  有效时间 cookie.setMaxage(0)  删除cookie cookie.setP

JSTL标签——核心标签库

JSP 标准标记库( Standard Tag Library , JSTL)是实现Web应用程序中常见的通用功能的定制标签库集,程序员通过JSTL标签避免在JSP页面中使用脚本. JSTL是一个标准的已制定好的标签库,它可以应用到很多领域. 如:基本输入输出.流程控制.循环.XML文件剖析.数据库查询及国际化和文字格式标准化的应用等. JSTL所提供的标签库主要分为五类: JSTL 前置名称 URI 范例 核心标签库 c http://java.sun.com/jsp/jstl/core <c

web day13 JSTL标签库(c标签,自定义标签),MVC设计模式,JavaWeb经典三层框架

JSTL 1. jstl的概述 *apache的东西,依赖EL * 使用jstl需要导入jstl1.2.jar * 四大库: > core:核心库,重点 > fmt:格式化:日期.数字 > sql:过时 > xml:过时 2. 导入标签库 *jar包 * 在jsp页面中:<%@taglib prefix="前缀" uri="路径"%> ---------------------- core --> c标签! 1. out和s

JSP自定义标签——简单标签(2)

在前一篇博客中,我们已经学习了自定义的简单标签的基本使用方法,这一篇我们来学习如何在简单标签中添加标签属性.对自定义标签添加一些属性,可以使我们的标签功能更加灵活和复用.例如前一篇博客使用简单标签来对标签体内容执行一定的次数,就无法在标签上规定要执行的次数,必须在标签处理器类中修改,很不方便,如果使用带属性的标签就能很好的解决这个问题. 要想使简单标签具有属性,通常需要满足以下两个步骤: ① 在标签处理器类中定义属性,同时为每个属性生成setter方法: ② 在TLD文件中对于的<tag>标签