zoukankan      html  css  js  c++  java
  • 简化document.createElement("div")动态生成层方法

    我们在WEB开发时,很多时候往往需要我们 JavaScript 来动态建立 html 元素,动态的设置相关的属性。比方说我们想要建立一個 div 层,则可以使用以下代码实现。

    一.直接建立
    function Button1_onclick() //直接采用代码建立一个DIV
    {
        var newElement = document.createElement('div'); 
        var newText = document.createTextNode('这是新建立 div 中的文字。'); 
        document.body.appendChild(newElement); //漏了这一句,否则行不通 
        newElement.id = 'newDiv'; 
        newElement.className = 'newDivClass'; 
        newElement.setAttribute('name ','newDivName'); 
        newElement.style.width = '300px'; 
        newElement.style.height = '200px'; 
        newElement.style.margin = '0 auto'; 
        newElement.style.border = '1px solid #DDD'; 
        newElement.appendChild(newText);  
    }

    二.把建立新对象写成一个通用方法,增加其通用性
    createEl = function(t, a, y, x)//编写建立一个新对象的通用方法

        var e = document.createElement(t); 
        document.body.appendChild(e); //漏了这一句,否则行不通 
        if (a) { 
            for (var k in a) { 
                if (k == 'class') e.className = a[k]; 
                else if (k == 'id') e.id = a[k]; 
        else e.setAttribute(k, a[k]); 
        } 
        } 
        if (y) { for (var k in y) e.style[k] = y[k]; } 
        if (x) { e.appendChild(document.createTextNode(x)); } 
        return e; 

    //再通过以下方法来进行调用建立一个新层
    function Button2_onclick() //先把建立一个新的DIV的方法写成一个通用方法,然后通过调用方法实例化建立DIV
    {
        var newElement = createEl('div', 
        {'class': 'newDivClass', id: 'newDiv', name: 'newDivName'},
        { '300px', height:'200px', margin:'0 auto', border:'1px solid #DDD'}, 
        '这是新建立div 中的文字。');

    }

    怎看之下这两个方法似乎使用了较长的代码块来达成相同的目的,其实不然,不过createEI这个通用方法实用性要强的多,在建立同类对象时性能会好的多。

  • 相关阅读:
    Mr. Frog’s Game(模拟连连看)
    Comparison of Android versions(strcmp的应用)
    Android热门网络框架Volley详解
    Android中你应该知道的设计模式
    从高德 SDK 学习 Android 动态加载资源
    Android中多线程下载列表的封装实现(含进度反馈)
    判断App是否在后台运行
    信息安全领域有哪些非常棒的资源?
    Android应用发布后的统计——百度移动统计的应用
    面试时,问哪些问题能试出一个Android应用开发者真正的水平?
  • 原文地址:https://www.cnblogs.com/7qin/p/9607272.html
Copyright © 2011-2022 走看看