dojo.byId、dojo.query、dojo.attr
概述:
dojo.byId(/*string*/id或/*DomNode*/node)
1.传入DOMNode返回传入的domNode;
2.传入id返回id为当前值的domNode
dojo.query(/*string*/selector,/*string*?/id||/*DOMNode*?/node)
1.返回NodeList集合;
2.第一个参数为 CSS selector string ;CSS3选择器:http://www.w3school.com.cn/cssref/css_selectors.asp
3.第二个参数为可选参数,如果不选,则在整篇文档查询;
选择,则在选择节点的子节点中查询。
参考:
http://dojotoolkit.org/reference-guide/1.9/dojo/query.html
http://www.ibm.com/developerworks/cn/web/1009_moying_dojoquery/
dojo.attr
1.dojo.attr(node, attr); // get
2.dojo.attr(node, attr, value); // set
- node
- id or reference of the DOM node to get/set style for
- attr
- the attribute property name or an object with key/value pairs suitable for setting each property.
- value
- If passed, sets value on the node for an attribute, handling cross-browser concerns.
- 实例见:http://dojotoolkit.org/reference-guide/1.7/dojo/attr.html
-
//如果节点中有特定的属性,那么返回true
dojo.hasAttr(/*DOMNode|String*/node,/*String*/name)
//从节点中移除一个属性
dojo.removeAttr(/*DOMNode|String*/node,/*String*/name)
1.dojo.byId实例
// fetch a node by id="someNode"
var node = dojo.byId("someNode");
dojo.ready(function(){
var n = dojo.byId("someId");
n.innerHTML = "Hi, World";
});
2.dojo.query实例
1.CSS选择器(以下例子都是全局查询)
//by Id
dojo.query("#someId"); // by class
dojo.query(".someClass"); // by attributes
dojo.query("[name^='link']"); // by tag type
dojo.query("div"); // first-children
dojo.query("ul > li"); // odd table rows:
dojo.query("table tr:nth-child(odd)"); // scoped to some other node as parent
dojo.query("a.link", "someNode");
dojo.query("div.someClassName");//查询DIV下所有类名为“someClassName”的元素
dojo.query("h1,h2,h3");//查询出所有的 h1,h2,h3 节点
dojo.query("p:first-child");//查询任意节点下的首个 p 子元素
2.相对查询。
//除了查询表达式外,我们需要传入另一个参数,用以指示查询起始的根节点。
//该参数可以是一个字符串,Dojo Query 会将其视作元素的 id 值;或者我们也可以传入一个 DOM 节点。
dojo.query(".test", "left");//查询id为left下所有类名为test的节点
3.对查询结果的后续处理
eg1:NodeList基本操作
//NodeList.length属性
var l = dojo.query(".thinger");
console.log("Size of items with class thinger:"+l.length);
//NodeList 中加入对象push
l.push(dojo.create('div', { innerHTML:'hi' }));
console.log("Size of items with class thinger:" + l.length);
l.push(dojo.byId("foo"));
console.log("Size of items with class thinger:" + l.length);
// 查询 id 为 foo 的元素在 NodeList 中的位置indexOf
console.log( l.indexOf(dojo.byId("foo")) );
// 获取第四个元素
var node = l[3];
// 通过 at 方法,一次找出第二和第四个元素,返回结果也是一个 NodeList。
var newList = l.at(1, 3);
eg2:NodeList.forEach 方法
dojo.query("div").forEach(function(node, index, array){
node.innerHTML = "new version content!";
});
eg3:NodeList.style 方法
var borders = dojo.query(".thinger").style("border");
// 设置新值
dojo.query(".thinger").style("border", "1px solid black");
// 删除,添加 class
dojo.query(".thinger").style({border :" 3px solid red" }).removeClass("thinger").
addClass("thinger2");
eg4:NodeList.connect 方法
dojo.query("input").connect("onclick", function(e){
alert("new event!");
});
eg5:NodeList.onclick 方法
dojo.query("input").onclick(function(e){
alert("new event!");
});
//直接支持的事件还包括 onclick, onmouseenter, onmouseleave, onmouseover, omouseout, ondblclick 等
eg6:NodeList 的鼠标事件
dojo.query("p").onmouseenter(function(e){
dojo.style(e.target, "color", "red");
}).onmouseleave(function(e){
dojo.style(e.target, "color", "blue");
});
eg7:扩展 NodeList 方法
dojo.extend(dojo.NodeList, {
setColor: function(newColor){
this.style({
color: newColor
});
return this;
}
});
dojo.query("p").setColor ("yellow");
eg8:链式调用
require(["dojo/query", "dojo/NodeList-dom"], function(query){
query("li").forEach(function(node){
node.innerHTML = "Something";
}).style("color", "red")
.style("fontSize", "12px");
});
3.dojo.attr实例
require(["dojo"], function(dojo){
// get node title
dojo.attr(node, "title");
// set node title
dojo.attr(node, "title", "my title");
}); //设置样式 changeStyle = function(){
dojo.attr("testNodeThree", "style", {padding: "5px", border: "1px solid #ccc", background: "#eee"});
}
dojo.byId、dojo.query、dojo.attr的更多相关文章
- Elasticsearch由浅入深(十)搜索引擎:相关度评分 TF&IDF算法、doc value正排索引、解密query、fetch phrase原理、Bouncing Results问题、基于scoll技术滚动搜索大量数据
相关度评分 TF&IDF算法 Elasticsearch的相关度评分(relevance score)算法采用的是term frequency/inverse document frequen ...
- 关于req.params、req.query、req.body等请求对象
请求对象,通常传递到回调方法,这意味着你可以随意命名,通常命名为 req 或 request . 请求对象中最常用的属性和方法有: req.params 一个数组,包含命名过的路由参数. req.pa ...
- ElasticStack学习(九):深入ElasticSearch搜索之词项、全文本、结构化搜索及相关性算分
一.基于词项与全文的搜索 1.词项 Term(词项)是表达语意的最小单位,搜索和利用统计语言模型进行自然语言处理都需要处理Term. Term的使用说明: 1)Term Level Query:Ter ...
- 主流JavaScript框架(Dojo、Google Closure、jQuery、Prototype、Mootools和YUI)的分析和对比
本文主要选取了目前比较流行的JavaScript框架Dojo.Google Closure.jQuery.Prototype.Mootools和YUI进行对比,主要是根据网上的资料整理而成,希望可以供 ...
- dojo表格内容居左、居中和居右
1.常规表格内容居左.居中和居右 style="text-align:left;" style="text-align:center;" style=" ...
- DOJO官方API翻译或解读-dojo/store (自定制存储器)
dojo/store 是对已存数据的访问和存储的统一接口,dojo/store意图以一个简单.易于使用和扩展的API来,替代.集合和改善 dojo/data 和dojox/storage .基于HTM ...
- SQLite Learning、SQL Query Optimization In Multiple Rule
catalog . SQLite简介 . Sqlite安装 . SQLite Programing . SQLite statements 1. SQLite简介 SQLite是一款轻型的数据库,是遵 ...
- ES的Query、Filter、Metric、Bucketing使用详解
由于笔者在实际项目仅仅将ES用作索引数据库,并没有深入研究过ES的搜索功能.而且鉴于笔者的搜索引擎知识有限,本文将仅仅介绍ES简单(非全文)的查询API. 笔者原本打算在本文中介绍聚合API的内容,但 ...
- 【Android】Retrofit网络请求Service,@Path、@Query、@QueryMap...
对Retrofit已经使用了一点时间了,是时候归纳一下各种网络请求的service了. 下面分为GET.POST.DELETE还有PUT的请求,说明@Path.@Query.@QueryMap.@Bo ...
随机推荐
- box-shadow实例1
实例一: 1.html <div class="paddingMiddle"> <div class="blank"></div& ...
- Biztalk2010安装及配置问题集
在安装Biztalk2010时,碰到很多问题,有的是粗心有的也是比较bt的,如: 1)在win7 64下引入x86 的cab,有点粗心,幸亏给我报错版本不兼容(呵呵): 2)安装的时候 不知道为什么计 ...
- hdu3599 War(最大流)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud War Time Limit: 2000/1000 MS (Java/Others ...
- hadoop官网介绍及如何下载hadoop(2.4)各个版本与查看hadoop API介绍
1.如何访问hadoop官网?2.如何下载hadoop各个版本?3.如何查看hadoop API? 很多同学开发都没有二手资料,原因很简单觉得不会英语,但是其实作为软件行业,多多少少大家会英语的,但是 ...
- git add和被ignore的文件
如果有如下的目录结构: workspace tree | --------------------- | | hello.c ...
- Java的Date类与Calendar类
一:Date类 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理.这里简单介绍一下Da ...
- slf4j绑定log4j失败
1,出现问题的配置 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api< ...
- win7 Oracle 11g安装及安装中遇到的问题
根据自己的系统从oracle官方下载安装包,官方地址:http://www.oracle.com/index.html win7的oracle 11g 安装包(2个): http://223.20.2 ...
- css3的loadding效果
<!DOCTYPE html> <html> <head> <title>CSS3 loading效果</title> <meta c ...
- 动态加载JS过程中如何判断JS加载完成
在正常的加载过程中,js文件的加载是同步的,也就是说在js加载的过程中,浏览器会阻塞接下来的内容的解析.这时候,动态加载便显得尤为重要了,由于它是异步加载,因此,它可以在后台自动下载,并不会妨碍其它内 ...