官方教程:Dojo DOM Functions
对dom的使用,需要引用包dojo/dom。
1.获取节点,dom.byId
byId中既可以传递一个字符串,也可以传递一个节点对象

require(["dojo/dom", "dojo/domReady!"], function(dom) {
     
    function setText(node, text){
        node = dom.byId(node);//通过已有对象
        node.innerHTML = text;
    }
    var one = dom.byId("one");//通过字符串
    setText(one, "One has been set");
    setText("two", "Two has been set as well");
     
});

2.创建节点,domConstruct.create,创建一个新的节点
domConstruct需要引用包dojo/dom-construct,包括4个参数。
第一个:
节点名,如"li""a"
第二个:属性对象,可以设置需要创建节点的各个属性、样式、内容和值
第三个:一个父节点或同级节点对象,可选
第四个:一个插入点标志字符串,由此决定是将第三个参数做为父节点附加到其内部,或是做为同级节点插入,可选,默认为"last"表示附加到父节点最后,"first"表示附加到父节点最前,"before"表示插入到同级节点前,"after"表示插入到同级节点后

require(["dojo/dom", "dojo/dom-construct", "dojo/domReady!"],
    function(dom, domConstruct) {
     
        var list = dom.byId("list"),
            three = dom.byId("three");
        domConstruct.create("li", {
            innerHTML: "Six"
        }, list);
        domConstruct.create("li", {
            innerHTML: "Seven",
            className: "seven",
            style: {
                fontWeight: "bold"
            }
        }, list);
        domConstruct.create("li", {
            innerHTML: "Three and a half"
        }, three, "after");
     
});

3.放置节点,domConstruct.place,改变已存在的一个节点的位置
domConstruct.place包括三个参数。
第一个:目标节点,是一个id字符串或节点对象,即需要放置的节点
第二个:关联节点,是一个id字符串或节点对象,即目标节点将附加到该父节点最前或最后,或者,插入到该同级节点前或后
第三个:一个插入点标志字符串,由此决定是将第二个参数做为父节点附加到其内部,或是做为同级节点插入其前后,可选,默认为"last"表示附加到父节点最后,"first"表示附加到父节点最前,"before"表示插入到同级节点前,"after"表示插入到同级节点后

require(["dojo/dom", "dojo/dom-construct", "dojo/on", "dojo/domReady!"],
    function(dom, domConstruct, on){
         
        function moveFirst(){
            var list = dom.byId("list"),
                three = dom.byId("three");
            domConstruct.place(three, list, "first");
        }
        function moveBeforeTwo(){
            var two = dom.byId("two"),
                three = dom.byId("three");
            domConstruct.place(three, two, "before");
        }
        function moveAfterFour(){
            var four = dom.byId("four"),
                three = dom.byId("three");
            domConstruct.place(three, four, "after");
        }
        function moveLast(){
            var list = dom.byId("list"),
                three = dom.byId("three");
            domConstruct.place(three, list);
        }        
});

4.毁灭节点,domConstruct.destroy,彻底删除一个已存在的节点及其子节点。
如果仅需清空该节点下的子节点,而保留该节点则用domConstruct.empty。
参数都是一个id字符串或节点对象。

function destroyFirst(){
    var list = dom.byId("list"),
        items = list.getElementsByTagName("li");
         
    if(items.length){
        domConstruct.destroy(items[0]);//删除list下第一个li子节点
    }
}
function destroyAll(){
    domConstruct.empty("list");//清空list下所有子节点
}

dojo 七 DOM dojo/dom相关推荐

  1. dojo 官方翻译 dojo/_base/array 版本1.10

    官方地址:http://dojotoolkit.org/reference-guide/1.10/dojo/_base/array.html#dojo-base-array array模块dojo进行 ...

  2. ArcGIS中加载模块时dojo/domReady!和dojo/ready的区别

    我们在使用ArcGIS Javascript  API开发时,最开始要先加载模块: <script>require(["esri/map", "dojo/do ...

  3. dojo Quick Start/dojo入门手册--xmlhttp dojo.xhrGet

    OK,介绍了简单的DOM操作方法,接下来该到Ajax的传统项目-XmlHttp了.在使用xmlhttp时,需要注意到编码的问题,要让dojo默认绑定为utf-8怎么办呢?很简单,只需要修改一下引入do ...

  4. dojo Quick Start/dojo入门手册--开始使用dojo.js

    2006年初,dojo还是0.22的时候就很关注它的发展,可一直没有在实际项目中使用.一来是由于文档的缺少,而来是dojo的相关介绍总是让人望而生畏. 到现在都如此,第一个hello world就搞了 ...

  5. dojo中的dojo/on

    在元素上绑定events,需要引用包dojo/on,通过on方法来实现. <button id="myButton">Click me!</button> ...

  6. dojo中的dojo/dom-style

    作用:DOM节点获取或设置样式. 用法: // Dojo 1.7+ (AMD) require(["dojo/dom-style"], function(domStyle){dom ...

  7. dojo中的dojo/dom-construct

    首先是引用: require(["dojo/dom-construct"], function(domConstruct){}); dom-construct主要包含如下方法: 1 ...

  8. dojo.publish 和 dojo.subscribe

    这俩个函数都与事件紧密相关. -- dojo.subscribe(/*String*/topic, /*Object|null*/context, /*String|Function*/method) ...

  9. dojo 九 effects dojo/_base/fx 和 dojo/fx

    官方教程:Dojo Effects 这里讲学习一下dojo如何实现淡入.淡出.滑动等效果. 实现这些特殊的效果有两个包 dojo/_base/fx 和 dojo/fx. dojo/_base/fx 中 ...

最新文章

  1. 小程序分享朋友圈之填坑模式
  2. 前端那些事之weex
  3. 白话Elasticsearch67-不随意调节jvm和thread pool的原因jvm和服务器内存分配的最佳实践
  4. 前端学习(1107):函数进阶
  5. php计算购置税1007无标题,新旧个税计算公式对比–ps:世界上最好的语言PHP
  6. 年度电竞游戏旗舰红魔3S发布:性能王者2999元起!
  7. python写数据库中间件_python3开发进阶-Django框架的中间件的五种用法和逻辑过程...
  8. JavaScript学习(四十)—字面量创建对象图解
  9. 记录 || 雨后王母山仙境
  10. 数仓建模—主数据管理
  11. 一些流行的颜色及其RGB值
  12. ASP的技术特点与使用方法
  13. Unity 相机的移动旋转以及拉近拉远的原理
  14. LAMMPS模拟in和data文件集合
  15. win8关闭uefi+linux,UEFI启动是什么意思?Win8关闭UEFI引导方式的方法
  16. C语言的指南针——指针与结构体
  17. git 设置别名 git alias
  18. Matlab遗传算法神经网络泰坦尼克号
  19. MySQL数据库管理工具Navicat与PhpMyAdmin功能对比
  20. 使用“宝塔一键迁移”工具,将单机版typecho博客系统迁移到京东云cvm云主机

热门文章

  1. php中pregmatch,php中preg_match的isU代表什么意思
  2. php v9 如何获取超级管理员权限,phpcms v9 增加后台管理员其他权限角色可以查看信息不能修改信息...
  3. matlab里输出恒压的逆变器,基于IGBT逆变器的异步电机变频调速系统的MATLAB仿真...
  4. 普通IO流字符输入输出流文件拷贝
  5. Linux下的MySQL安装及卸载
  6. org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException:
  7. 为什么叫日上_古雷150万吨乙烯,为啥叫芒果项目?
  8. Android入门(八) | 常用的界面布局 及 自定义控件
  9. 剑指offer:3-7记录
  10. leetcode403 青蛙过河