Dojo dom 操作

前言

    dojo中有关dom的操作分布封装在各个特性模块中,显得比较冗杂。

1、获取dom元素

    1.1、按id获取

        dojo/dom

require(["dojo/dom","dojo/on","dojo/domReady!"],
    function(dom,on) {
	    on(dom.byId("btn"),"click", function () {
	         dom.byId("myDiv").innerHTML="div的内容被修改了";
	    })
    });

        dojo/query

require(["dojo/query","dojo/domReady!"],
	function(query) {
       //注意这里是一个数组,选择id为txt的DOM元素
       query("#txt")[0].on(“click”,function(){
	});
})
    1.2 通过class选择DOM

        dojo/query

require(["dojo/query","dojo/domReady!"], 
	function(query) {
         //选择class属性为txt的DOM元素
         query(".txt")[0]. on(“click”,function(){
	});
});

2、操作dom结构

        dojo/dom-construct模块
        在dojo/dom-construct模块中主要有四种常用的方法:createdestroyemptyplace.其中create主要用于创建DOM节点,destroy主要用于销毁节点,empty用于将某一个节点的子节点清空,place主要用于将DOM结点插入到指定位置。
        已知dom元素

<ul id="list">
    <li id="Two">Two</li>
    <li id="Three">Three</li>
    <li id="Four">Four</li>
    <li id="Five">Five</li>
    <li id="Six">Six</li>
</ul>
    2.1使用create方法操DOM

            create(tag,attrs,refNode, pos) 方法插入一个DOM结点

            参数:
                tag:require 标签的种类。
                attrs:option 标签的属性
                refNode:option 插入的目标标签
                pos:option 相对于目标标签的位置,默认为last,还可以填写first,after,before,last,replace,only。

require(["dojo/dom","dojo/dom-construct","dojo/domReady!"],
  function(dom,domConstruct) {
        //获得list节点
        var list = dom.byId("list");
        //创建一个li标签,然后标签innerHtml属性为one
        //然后将创建的li结点插入到list标签的头部
        domConstruct.create("li", {
            innerHTML: "one"
        }, list,"first");
 });
    2.2使用destroy()方法销毁一个结点

            destroy(refNode)
            参数:
                refNode:require 删除的目标标签

require(["dojo/dom","dojo/dom-construct","dojo/domReady!"],
    function(dom,domConstruct) {
       //获得list节点
       var list = dom.byId("list");
       //删除list节点
       domConstruct.destroy(list);
});
    2.3使用empty()方法清空节点

            empty (refNode)
            参数:
                refNode:require清空的目标标签

require(["dojo/dom","dojo/dom-construct","dojo/domReady!"],
  function(dom,domConstruct) {
     //获得list节点
      var list = dom.byId("list");
      //删除list节点
      domConstruct.empty(list);
});
    2.4使用place()方法插入一个节点

            place(node,refNode,position)
            参数:
                node:require 要添加的节点
                refNode:require 目标节点
                position:option 相对于目标标签的位置,默认为last,还可以填写first,after,before,last,replace,only。

require(["dojo/dom","dojo/dom-construct","dojo/domReady!"],
  function(dom,domConstruct) {
     //获得list节点
     var list = dom.byId("list");
     //创建一个节点
     var li=domConstruct.create("li", {
         innerHTML: "one"
     });
     //将li节点插入的list中
     domConstruct.place(li,list,"first");
});
    3、操作dom属性

        dojo/dom-attr模块

  • get(node,name):用户获得node元素的属性值
  • has(node,name):判断node元素是否有某种属性
  • remove(node,name):删除node元素的某种属性
  • set(node,name,value):设置node元素属性值(注意这里是属性值)
  • getNodeProp(node,name):获得node元素的属性,这里注意,可以获得一个json类型的属性,比如class属性
    4、操作dom类

        dojo/dom-class模块

  • add(node,classStr):给node节点添加一个样式;
  • contains(node,classStr):判断node节点是否有某种样式
  • remove(node,classStr):移除node节点中的某种样式;
  • replace(node,addClassStr,removeClassStr):替换node节点中的样式;
  • toggle(node,classStr,condition):交替的改变node的样式
    5、操作dom样式

        dojo/dom-style模块

  • get(node,stylename):获得node节点的属性值;
  • set(node, stylename, value);:设置DOM节点上的样式;
  • getComputedStyle(node):获得node节点style属性值:注意这里是一个json对象。

参考整理

https://blog.youkuaiyun.com/shiyangxu/article/details/81433223

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值