摘要:的建立在沒(méi)有學(xué)習(xí)函數(shù)的封裝之前,對(duì)于的操作很麻煩以前我們要經(jīng)常調(diào)用元素還有各種方法,當(dāng)我把一個(gè)對(duì)象封裝起來(lái)的話,有些就變得簡(jiǎn)單了。
DOM的建立
在沒(méi)有學(xué)習(xí)函數(shù)的封裝之前,對(duì)于DOM的操作很麻煩;以前我們要經(jīng)常調(diào)用元素還有各種方法,當(dāng)我把一個(gè)對(duì)象封裝起來(lái)的話,有些就變得簡(jiǎn)單了。就像一個(gè)計(jì)算器,加法是基礎(chǔ)的方法,當(dāng)你想使用乘法的時(shí)候,比如5x5;其實(shí)就是5個(gè)5相加,本來(lái)需要調(diào)用5次+的方法,而我們想把加法和加的次數(shù)封裝起來(lái),把這個(gè)封裝的函數(shù)命名的符號(hào)為x;這樣我們是否減少了許多步驟呢?
接下來(lái),我就分享對(duì)象的建立,及封裝。
//創(chuàng)建一個(gè)對(duì)象字面量DOMBuilder,其功能為創(chuàng)建DOM的封裝 var DOMBuilder = { }二 添加方法
var DOMBuilder = { //創(chuàng)建方法,傳入?yún)?shù)(tag 標(biāo)簽 attrs 屬性的數(shù)組 children 子元素) create:function(tag, attrs, children) { } }三 判斷參數(shù)
var DOMBuilder = { create:function(tag, attrs, children) { //如果attrs 未傳輸,默認(rèn)其為空對(duì)象,以免報(bào)錯(cuò); || 或者 attrs = attrs || {}; //如果子節(jié)點(diǎn) 未傳輸,默認(rèn)為空數(shù)組 children = children || []; } }四 創(chuàng)建元素并為其添加屬性
var DOMBuilder = { create:function(tag, attrs, children) { attrs = attrs || {}; children = children || []; //el 為創(chuàng)建后的元素 var el = document.createElement(tag); //給元素添加屬性, for in 常用于JSON中遍歷對(duì)象 for(var attr in attrs) { el.setAttribute(attr,attrs[attr].toString()); } } }五 添加子元素,并判斷元素
var DOMBuilder = { create:function(tag, attrs, children) { attrs = attrs || {}; children = children || []; var el = document.createElement(tag); for(var attr in attrs) { el.setAttribute(attr,attrs[attr].toString()); } //給元素添加子元素 for(var i = 0; i < children.length;i++) { //如果是文本,將子節(jié)點(diǎn)設(shè)置為文本節(jié)點(diǎn) if (typeof children[i] == "string") { children[i] = document.createTextNode(children[i]); } //將子元素添加到el上 el.appendChild(children[i]); } } }六 完善函數(shù)體,并結(jié)合目的來(lái)調(diào)用
var DOMBuilder = { //創(chuàng)建方法 tag 標(biāo)簽 attrs 屬性的數(shù)組 children 子元素 create:function(tag, attrs, children) { //如果attrs 未傳輸,默認(rèn)其為空對(duì)象,以免報(bào)錯(cuò); || 或者 attrs = attrs || {}; //如果子節(jié)點(diǎn) 未傳輸,默認(rèn)為空數(shù)組 children = children || []; //el 為創(chuàng)建后的元素 var el = document.createElement(tag); //給元素添加屬性, for in 常用于JSON中遍歷對(duì)象 for(var attr in attrs) { el.setAttribute(attr,attrs[attr].toString()); } //給元素添加子元素 for(var i = 0; i < children.length;i++) { //如果是文本,將子節(jié)點(diǎn)設(shè)置為文本節(jié)點(diǎn) if (typeof children[i] == "string") { children[i] = document.createTextNode(children[i]); } //將子元素添加到el上 el.appendChild(children[i]); } return el; } }
A.我們給頁(yè)面添加一個(gè) h1 的標(biāo)簽,它的id 為 h1_title
var h1 = DOMBuilder.create("h1", {id:"h1_title",title:"標(biāo)題"},["DOMBuilder"]); document.body.appendChild(h1);
B.我們創(chuàng)建一個(gè)id 為list 的ul標(biāo)簽,ul下有一個(gè)類(lèi)名為item 的li 標(biāo)簽
var li = DOMBuilder.create("li", {class:"list"},["item"]); var ul = DOMBuilder.create("ul",{id:"list"},[li]); document.body.appendChild(ul);
這是我在SegmentFault發(fā)表的第一篇文章,算是新手上路;但我不求大家多多包涵,求大家多多批評(píng)!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/80321.html
摘要:使用包管理工具,基于構(gòu)建工具,搭建開(kāi)發(fā)環(huán)境由于一些軟件安裝跟系統(tǒng)環(huán)境相關(guān),故這里查看本文檔,需要根據(jù)自己的系統(tǒng)環(huán)境,選擇相對(duì)應(yīng)的系統(tǒng)版本。 使用Yarn包管理工具,基于Webpack構(gòu)建工具,搭建React開(kāi)發(fā)環(huán)境 showImg(https://segmentfault.com/img/remote/1460000019833533?w=560&h=310); 由于一些軟件安裝跟系統(tǒng)...
安裝 首先你需要點(diǎn)擊這里安裝 nodejs(npm)。然后執(zhí)行: 建立一個(gè)目錄作為項(xiàng)目根目錄并初始化: mkdir react-webpack cd react-webpack/ npm init 安裝相關(guān)組件 這里包括了本文所需要的全部組件 npm i --save-dev react react-dom react-transform-hmr webpack webpack-dev-serve...
摘要:接下來(lái)該填表了生成行和單元格為了填充表格可以遵循同樣的方法,但這次我們需要迭代數(shù)組中的每個(gè)對(duì)象。對(duì)于每個(gè)對(duì)象,我們可以使用生成單元格。 翻譯:瘋狂的技術(shù)宅原文:https://www.valentinog.com/bl... 本文首發(fā)微信公眾號(hào):jingchengyideng歡迎關(guān)注,每天都給你推送新鮮的前端技術(shù)文章 怎樣用原生 JavaScript 生成表格需?本文告訴你答案!...
摘要:打開(kāi)瀏覽器輸入,會(huì)看到構(gòu)建的項(xiàng)目的主頁(yè)目錄結(jié)構(gòu)使用編輯器打開(kāi)推薦使用,下面具體看看目錄結(jié)構(gòu)在中,根據(jù)我們?cè)跇?gòu)建項(xiàng)目的時(shí)候的選項(xiàng),有以下幾個(gè)命令。 構(gòu)建一個(gè) vue 項(xiàng)目最簡(jiǎn)單的方式就是使用腳手架工具 vue-cli 。前端的三大框架都有自己的腳手架工具,其作用就是用配置好的模板迅速搭建起一個(gè)項(xiàng)目工程來(lái),省去自己配置 webpack 配置文件的基本內(nèi)容,大大降低了初學(xué)者構(gòu)建項(xiàng)目的難度。這...
摘要:前言微前端理論篇上一篇介紹了微前端的理念,本片將開(kāi)始介紹項(xiàng)目。先實(shí)現(xiàn)公共依賴(lài)的引入吧。在上一步我們沒(méi)有引入的依賴(lài)包,是因?yàn)榈囊蕾?lài)包是作為公共依賴(lài)導(dǎo)入的。里面全是我的公共依賴(lài)文件在下新建文件夾,新建文件,作為我們整個(gè)項(xiàng)目的頁(yè)面文件。 前言 微前端 —— 理論篇 上一篇介紹了微前端的理念,本片將開(kāi)始介紹portal項(xiàng)目。 portal項(xiàng)目介紹 ????????portal項(xiàng)目包括兩個(gè)...
閱讀 1173·2023-04-25 17:28
閱讀 3639·2021-10-14 09:43
閱讀 3982·2021-10-09 10:02
閱讀 1953·2019-08-30 14:04
閱讀 3147·2019-08-30 13:09
閱讀 3283·2019-08-30 12:53
閱讀 2923·2019-08-29 17:11
閱讀 1836·2019-08-29 16:58