添加标签——给定标签选项
程序员文章站
2022-06-24 15:26:47
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 }