概述:

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的更多相关文章

  1. Elasticsearch由浅入深(十)搜索引擎:相关度评分 TF&IDF算法、doc value正排索引、解密query、fetch phrase原理、Bouncing Results问题、基于scoll技术滚动搜索大量数据

    相关度评分 TF&IDF算法 Elasticsearch的相关度评分(relevance score)算法采用的是term frequency/inverse document frequen ...

  2. 关于req.params、req.query、req.body等请求对象

    请求对象,通常传递到回调方法,这意味着你可以随意命名,通常命名为 req 或 request . 请求对象中最常用的属性和方法有: req.params 一个数组,包含命名过的路由参数. req.pa ...

  3. ElasticStack学习(九):深入ElasticSearch搜索之词项、全文本、结构化搜索及相关性算分

    一.基于词项与全文的搜索 1.词项 Term(词项)是表达语意的最小单位,搜索和利用统计语言模型进行自然语言处理都需要处理Term. Term的使用说明: 1)Term Level Query:Ter ...

  4. 主流JavaScript框架(Dojo、Google Closure、jQuery、Prototype、Mootools和YUI)的分析和对比

    本文主要选取了目前比较流行的JavaScript框架Dojo.Google Closure.jQuery.Prototype.Mootools和YUI进行对比,主要是根据网上的资料整理而成,希望可以供 ...

  5. dojo表格内容居左、居中和居右

    1.常规表格内容居左.居中和居右 style="text-align:left;" style="text-align:center;" style=" ...

  6. DOJO官方API翻译或解读-dojo/store (自定制存储器)

    dojo/store 是对已存数据的访问和存储的统一接口,dojo/store意图以一个简单.易于使用和扩展的API来,替代.集合和改善 dojo/data 和dojox/storage .基于HTM ...

  7. SQLite Learning、SQL Query Optimization In Multiple Rule

    catalog . SQLite简介 . Sqlite安装 . SQLite Programing . SQLite statements 1. SQLite简介 SQLite是一款轻型的数据库,是遵 ...

  8. ES的Query、Filter、Metric、Bucketing使用详解

    由于笔者在实际项目仅仅将ES用作索引数据库,并没有深入研究过ES的搜索功能.而且鉴于笔者的搜索引擎知识有限,本文将仅仅介绍ES简单(非全文)的查询API. 笔者原本打算在本文中介绍聚合API的内容,但 ...

  9. 【Android】Retrofit网络请求Service,@Path、@Query、@QueryMap...

    对Retrofit已经使用了一点时间了,是时候归纳一下各种网络请求的service了. 下面分为GET.POST.DELETE还有PUT的请求,说明@Path.@Query.@QueryMap.@Bo ...

随机推荐

  1. Margin是什么?

    Margin是什么 CSS 边距属性定义元素周围的空间.通过使用单独的属性,可以对上.右.下.左的外边距进行设置.也可以使用简写的外边距属性同时改变所有的外边距.——W3School 边界,元素周围生 ...

  2. ueditor富文本编辑的使用方法

    平时在编写上传文件,图片,视频等等这些功能的代码会很繁琐,这里我介绍一款由百度推出的CuteEditor,是一款功能非常强大,支持图片上传.文件下载和word类似的文字编辑器.对于新闻发布系统和博客之 ...

  3. mvc PagerHelper静态分页

    ---------------分页方法----------------- public static class PagerHelper    {        /// <summary> ...

  4. Sql存储过程解密方法

    在网上查到这样一个存储过程解密的方法,用起来简单,收藏到这里: )) AS ------------------------sql2000大于40000的----------------- --原作: ...

  5. asp.net 页面上传文件控件后台代码Request.Files获取不到

    今天开发中遇到页面文件上传控件选择了文件,而后台Request.Files.Count取值为0,之前开发中遇到过几次,老是忘掉,今天记下来. html: <input type="fi ...

  6. TCP 和 UDP 协议发送数据包的大小 (转载)

    MTU最大传输单元,这个最大传输单元实际上和链路层协议有着密切的关系,EthernetII帧的结构DMAC+SMAC+Type+Data+CRC由于以太网传输电气方面的限制,每个以太网帧都有最小的大小 ...

  7. eclipse 使用mvn模块化开发

    1.创建maven父工程步骤:new-->other-->选择maven project-->next-->勾选create a simple project-->nex ...

  8. LINUX系统GIT使用教程

    Git使用笔记. 1 安装GIT $  sudo aptitude install git $  sudo aptitude install git-doc git-svn git-email git ...

  9. Redis Clients Handling

    This document provides information about how Redis handles clients from the point of view of the net ...

  10. Candy 解答

    Question There are N children standing in a line. Each child is assigned a rating value. You are giv ...