成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Dom build

godlong_X / 3173人閱讀

摘要:的建立在沒(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ì)象
//創(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

相關(guān)文章

  • 構(gòu)建React開(kāi)發(fā)環(huán)境

    摘要:使用包管理工具,基于構(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)...

    yck 評(píng)論0 收藏0
  • 快速搭建 webpack + react 環(huán)境

    安裝 首先你需要點(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...

    孫淑建 評(píng)論0 收藏0
  • 回到基礎(chǔ):如何用原生 DOM API 生成表格

    摘要:接下來(lái)該填表了生成行和單元格為了填充表格可以遵循同樣的方法,但這次我們需要迭代數(shù)組中的每個(gè)對(duì)象。對(duì)于每個(gè)對(duì)象,我們可以使用生成單元格。 翻譯:瘋狂的技術(shù)宅原文:https://www.valentinog.com/bl... 本文首發(fā)微信公眾號(hào):jingchengyideng歡迎關(guān)注,每天都給你推送新鮮的前端技術(shù)文章 怎樣用原生 JavaScript 生成表格需?本文告訴你答案!...

    Sunxb 評(píng)論0 收藏0
  • vue-cli 構(gòu)建 vue 項(xiàng)目詳解

    摘要:打開(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)目的難度。這...

    JeOam 評(píng)論0 收藏0
  • 微前端 —— portal項(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è)...

    shiguibiao 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<