添加標簽——給定標簽選項

来源:https://www.cnblogs.com/lprosper/archive/2018/08/01/9404471.html
-Advertisement-
Play Games

HTML: CSS: JavaScript: ...


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     }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 目標 1. 常用數據類型 2. 基本語法 3. 變數的定義與賦值 4. 數據類型與轉換 5. 邏輯控制語句 6. 條件語句 7. 迴圈語句 8. 函數定義 基本語法 變數 變數名以字母或下劃線("_")開頭 變數可以包含數字、從 A 至 Z 的大小寫字母 JavaScript 區分大小寫 變數的聲明 ...
  • 1、系統主題選擇 “ 文件 → 首選項 → 顏色主題” 快捷鍵:[ Ctrl+K Ctrl+T ] 2、安裝主題 [ Ctrl+K Ctrl+M ] 打開擴展,搜索 theme,選擇安裝 點擊“重新載入” 3、“ 文件 → 首選項 → 設置” 輸入“ workbench.colorTheme ” 換 ...
  • ajax ajax是一種技術方案,但並不是一種新技術。它依賴的是現有的CSS/HTML/Javascript,而其中最核心的依賴是瀏覽器提供的XMLHttpRequest對象,是這個對象使得瀏覽器可以發出HTTP請求與接收HTTP響應。 實現在頁面不刷新的情況下和服務端進行數據交互。 作用:傳統的網 ...
  • 2018年8月1日 廣州 這幾天在學JS基礎語句,練習中出現一些錯誤,開始往往都不知道問題出在哪。調試代碼找錯誤往往最費時間,所以告訴自己拿到一個題,最好先拿出紙筆,仔細想想命題實現的邏輯,在紙上簡單寫粗略的代碼,大致驗證下邏輯。這樣避免在機上修改代碼更好,因為代碼里語句和變數改來改去,總會遺漏,或 ...
  • 觀察者模式 定義:觀察者模式(Observer Pattern):定義對象間的一種一對多依賴關係,使得每當一個對象狀態發生改變時,其相關依賴對象皆得到通知並被自動更新。 其中有兩個定義需要明確,被觀察者和觀察者。通常來說,這兩者是一對多的,也有多對多的情景。 在網頁開發中,被觀察者通常是數據源,不論 ...
  • 1 /** 2 * 獲取瀏覽器滾動距離 3 */ 4 function getScrollOffset() { 5 if (window.pageXOffset) { 6 return { 7 x: window.pageXOffset, 8 ... ...
  • 1 /** 2 * 獲取瀏覽器可視區域寬度 3 */ 4 function getViewPortOffset() { 5 if (window.innerWidth) { 6 return { 7 w: window.innerWidth, 8 ... ...
  • 1 2 3 4 5 6 獲取元素尺寸寬高 7 8 18 19 20 Prosper 21 22 42 43 44 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...