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 ...
随机推荐
- 如何在asp.net中如何在线播放各类视频文件
一.后台拼字符串动态加载写法 前台调用代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...
- SICP阅读笔记(一)
2015-08-25 008 Foreword QUOTE: I think that it's extraordinarily important that we in compute ...
- C++程序设计实践指导1.10二维数组元素换位改写要求实现
改写要求1:改写为以单链表和双向链表存储二维数组 改写要求2:添加函数SingleLinkProcess()实现互换单链表中最大结点和头结点位置,最小结点和尾结点位置 改写要求3:添加函数Double ...
- 【2】python核心编程 第四章-python对象
1.python对象 所有的Python 对像都拥有三个特性:身份,类型和值. 身份: 每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数id()来得到. 这个值可以被认为是该对象的 ...
- 动态加载JS过程中如何判断JS加载完成
在正常的加载过程中,js文件的加载是同步的,也就是说在js加载的过程中,浏览器会阻塞接下来的内容的解析.这时候,动态加载便显得尤为重要了,由于它是异步加载,因此,它可以在后台自动下载,并不会妨碍其它内 ...
- 电子工程师名片——FAT16文件系统
从8月8号开始,连续一个月利用每天下班时间和周末的时间终于初步完成了一个电子工程师的电路板名片,就像U盘一样,不过这个FLASH只有64KB的大小,用的单片机是C8051F320,是一个USB型的单片 ...
- QT字体的设置
摘要: QT4.7.0在移植到开发板上的时候,中文支持是必不可少的,如何让QT支持中文,如何制作QT支持的字体文件,如何使QT UI编辑器中的字号与开发板中的字号一致.作者通过实验进行了一一验证. 介 ...
- 苹果开发证书相关BLOG与Delphi IOS环境安装(超详细)
注:有好的资源,请添加了上传,上传后,通知管理员,删除旧文件,累积相关的学习资源,方便新手学习 一.相关论坛http://www.2ccc.com/ delphi 合子 www.2pascal.com ...
- WPF笔记(2.2 DockPanel)——Layout
原文:WPF笔记(2.2 DockPanel)--Layout 读完了这一节,发现DockPanel就是过去winform中的Dock属性.原来的Dock属性是子控件设置,而其父亲级别不用设置.现在W ...
- C# dynamic类型
dynamic类型是C#4.0中引入的新类型,它允许其操作掠过编译器类型检查,而在运行时处理.dynami类型在绝大多数情况下和object类型相似,不同之处在于编译器对于包含了dynamic的表达式 ...