官方教程: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/dom dojo/domConstruct dojo/query

    dom.byId require(["dojo/dom", "dojo/domReady!"], function(dom) { var one = dom.b ...

  2. dojo 十 ajax dojo/_base/xhr

    官方教程:Ajax with DojoAjax功能:1.从服务器加载静态数据2.从web服务中访问xml或json类型的数据3.将表单(form)数据发送到服务器4.刷新页面内容....Ajax在RI ...

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

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

  4. DOJO 八 event dojo/on

    官网教程:Events with Dojo在元素上绑定events,需要引用包dojo/on,通过on方法来实现. <button id="myButton">Clic ...

  5. dojo.byId、dojo.query、dojo.attr

    概述: dojo.byId(/*string*/id或/*DomNode*/node) 1.传入DOMNode返回传入的domNode; 2.传入id返回id为当前值的domNode dojo.que ...

  6. Dojo API中文 Dojo内容模块概览,初学者

    官网:http://dojotoolkit.org/reference-guide/1.10/dojo/index.html#dojo-dojo的翻译 dojo 内容: dojo dojo/dojo ...

  7. dojo 官方翻译 dojo/Deferred

    延迟,异步调用 官网地址:http://dojotoolkit.org/reference-guide/1.9/dojo/Deferred.html require(["dojo/Defer ...

  8. dojo 官方翻译 dojo/domReady 版本1.10

    官方地址:http://dojotoolkit.org/reference-guide/1.10/dojo/domReady.html#dojo-domready dom加载完成后,执行. requi ...

  9. dojo 官方翻译 dojo/json 版本1.10

    官方地址:http://dojotoolkit.org/reference-guide/1.10/dojo/json.html#dojo-json require(["dojo/json&q ...

随机推荐

  1. Linq中Select查询参数提取公共方法

    class Program { static void Main(string[] args) { var listTest1 = new List<Test1> { "}, & ...

  2. C++ Template之非类型模板参数

    非类型模板参数是通过基本变量类型引入,例如int,在使用时必须显式自定值,不能通过推断. 非类型模板参数的限制:不能是浮点数(在vc6.0上测试可以为浮点型),对象以及指向内部链接对象的指针. #in ...

  3. 设计模式之中介者模式(Mediator)

    中间者模者模式原理:中介者维持所有要交互对象的指针或者对象,所有对象维持一个中介者的指针或者对象. #include <iostream> #include <string> ...

  4. 事务并发处理: DB+ORM+逻辑代码

    在学习了马士兵有关事务并发处理的视频后, 感觉对事务并发处理的概念,问题以及解决方式有了一定的了解,赶紧记录下来以备后用. 1. 事务:一系列操作要么都完成,要么一个都不完成 2. 事务并发:多个事务 ...

  5. 12 高性能I/O框架库Libevent

    这里不讲Libevent库的具体内容了,从宏观上对I/O库整体做个介绍 Linux服务器程序必须处理三类事件:I/O事件,信号和定时事件 统一事件源:统一处理这三类事件既能使代码简单易懂,又能避免一些 ...

  6. BZOJ 1071组队

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1071 题目很好,居然写了很久,题解找了真多: 主要两种做法: O(n^2lgn),通过优先 ...

  7. [开发]Win7环境下Eclipse连接Hadoop2.2.0

    准备: 确保hadoop2.2.0集群正常运行 1.eclipse中建立mven工程,并编辑pom文件如下 <dependencies> <dependency> <gr ...

  8. webservice wsdl 生成服务

    由于之前的示例是在当前项目下发布的server,也是在当前项目下访问的server发布的webservice.但在实际应用中,我们的服务端往往是和客户諯分离的,甚至它们是不同的项目中不同的人写的.而像 ...

  9. Android 添加Button事件

    protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentV ...

  10. iptables使用multiport 添加多个不连续端口 不指定

    iptables使用multiport 添加多个不连续端口   碟舞飞扬 , 01:26 , Linux技术 , 评论(0) , 引用(0) , 阅读(12214) , Via 本站原创 大 | 中  ...