?1. 通过id获取dom节点
如果要对html文档中的元素进行处理时,我们一般会为该节点设置一个id属性;在dojo中,提供了一个通过id获取节点的简洁方式。
如果要获取如下节点:
<input type="text" name="username" value="alex1" id="username" class="textCss"/>
?
使用js获取该节点:
document.getElementById("username");
?
使用dojo获取该节点:
dojo.byId("username");
?注意:如果没有找到指定id的节点,返回的将是undefined,而不是null。
?
2. 使用dojo.query进行通用查询
??? 除了通过byId来获取节点外,dojo提供了更为通用的方法query来获取dom节点,使用query方法获取指定id节点的方式如下:
var usernameObj = dojo.query("#username"); //方法1 var usernameObj = dojo.query("[id='username']"); //方法2 var usernameVal = usernameObj[0].value;
??
?2.1 通过节点的属性来获取节点的格式如下:
??? dojo.query("[属性名='属性值']");
所以,你也可用一下方式来获取:
dojo.query("[name='username']"); dojo.query("[type='text']"); dojo.query("[value='alex']");
?
注意:通过query的方式获取节点,返回的将是一个对象数组;如果没有获取到任何节点,将返回空字符串"",而不是null。
?
? 2.2 通过节点类型来获取节点的格式如下:
??????? dojo.query("节点类型");
?? 如获取所有的input的节点:
dojo.query("input");
?
??? 可以和其他方式结合在一起使用,如获取input节点中name属性值为username的节点:
dojo.query("input[name='username']");
??
?? 2.3 通过样式名来获取节点的格式如下:
???????? dojo.query(".样式名");
dojo.query(".textCss");
?
3. 节点复杂查询
??? 3.1 从某节点的所有后代节点中查找
dojo.query("body input");
?
??? 3.2 从某节点的子节点中查找
dojo.query("body>input");
?? 3.3 获取指定属性的值中,以"item"字符串开头、结尾或包含此字符串节点的方式如下:
?
dojo.query("[name^='item']"); dojo.query("[name$='item']"); dojo.query("[name*='item']");
?? 3.4 获取第一个和最后一个节点,或指定索引的节点
dojo.query("input:first-child"); dojo.query("input:last-child"); dojo.query("input:nth-child(1)"); // 索引从1开始 dojo.query("input:nth-child(odd)");
?
dojo.query("body form:only-child");?