nothings0o 2012-06-20
/** ** 基本的DOM操作只是用到了dojo的核心文件. ** 使用dojo.query将返回一个匹配到的节点数组-dojo.Nodelist, 这个数组内建了一些常用的方法. 可以操作DOM **/ /*---------------使用dojo的方法--------------*/ dojo.ready(function(){ //一坨一坨的代码. }); /*---------------获取元素节点--------------*/ dojo.byId("demo"); //获取ID为demo的元素 dojo.query("#demo"); //获取ID为demo的元素 dojo.query(".demo"); //获取所有class为demo的元素 dojo.query(".demo > li"); //获取class为demo的元素中, 所有直接子集li元素 dojo.query("input[name='demo']"); //获取拥有name属性,且属性值为demo的input元素 dojo.query(".demo", dojo.byId("p_demo")); //从id为p_demo的元素中获取所有class为demo的元素 /*---------------创建元素节点--------------*/ dojo.create("li", { id:"demo", className:"deLeGemo", innerHTML:"create node", style:{ "color":"red", "fontWeight":"bold" } }, refNode, "before"); dojo.create(str, attrs, refNode, pos); // pos有7个可用取值(以下内容如果引起身体不适.. 请自觉服用抗呕吐药物, 如:维生素B6): // 1. [null] 新创建的元素将作为refNode的子元素, 且添加到refNode中最后的位置 // 2. [before] 新创建的元素将作为refNode的同辈元素, 且位于refNode的前边 // 3. [after] 新创建的元素将作为refNode的同辈元素, 且位于refNode的后边 // 4. [only] 新创建的元素将取代父元素内所有子元素, 添加到refNode内部 // 5. [replace] 新创建的元素将直接替换点父元素 // 6. [first] 新创建的元素将作为refNode的子元素, 并添加到所有子元素的最前边 // 7. [last] 新创建的元素将作为refNode的子元素, 并添加到所有子元素的最后边 /*---------------操作节点的一些方法--------------*/ //建议不要尝试给dojo.byId()获取的元素使用链式写法.. 会囧的.. dojo.query(".demo").style("color","red").removeClass("fontStyle").addClass("layoutStyle"); dojo.query(".demo").style({color:"red",fontWeight:"bold"}).removeClass("fontStyle").addClass("layoutStyle"); var node = dojo.byId("node"); dojo.addClass(node, "className"); //删除节点的所有子节点(简单描述: 清空节点) | 删除节点及其所有自己点(简单描述: 删除节点) var node = dojo.byId("node"); dojo.empty(node); dojo.destroy(node); //移动节点(将"node"节点, 移动到"refNode"节点的"pos"位置) //pos的参数类似上边创建节点(dojo.create)部分(未验证). var node = dojo.byId("node"); var refNode = dojo.byId("refNode"); dojo.place(node, refNode, pos);