dojo中的query选择器

dojo/dom模块中只能通过DOM的ID属性来选择DOM元素,这远远不能满足我们的要求。因此,dojo/query模块中提供了更多的选择方法。该模块中大致可分为7类选择器:

  • 基本选择器
  • 层次选择器
  • 内容过滤选择器
  • 属性选择器
  • 子元素过滤选择器
  • 表单对象属性过滤选择器
  • 表格选择器

query模块选择的是一个DOM数组(哪怕只有一个DOM元素也是数组)

1. 基本选择器

在html中定义标签

<div id='box' class='box'>
<div class='anotherbox'>

1.1 通过id选择

//使用query选择DOM元素
require(["dojo/query","dojo/domReady!"],function(query){
    query("#box");
})

1.2 通过class选择

//使用query选择DOM元素
require(["dojo/query","dojo/domReady!"],function(query){
    query(".box");
})

1.3 通标签名选择

//使用query选择DOM元素
require(["dojo/query","dojo/domReady!"],function(query){
    query("div");
})

1.4 多个选择器一起使用

//使用多个选择器时,选择器间用逗号分隔
require(["dojo/query","dojo/domReady!"],function(query){
    query("#box",".anotherbox");
})

2. 层次选择器

2.1 祖先和后代元素的关系

创建html标签

 <body class="tundra">
           <div id="one">
               <div class="mini"></div>
           </div>
           <div>

           </div>
    </body>

使用query选择器选择div元素

require(["dojo/query","dojo/domReady!"],function(query){
    query("body div").style("background","yellow");  //注意是祖先和后代的关系,body和div间使用空格
})

这时候会发现所有的div背景颜色都变成了黄色(yellow)。

2.2 父与子元素的关系

require(["dojo/query","dojo/domReady!"], function(query) {               query("body>div").style("background","yellow")  //注意是父元素和子元素的关系,body和div间使用'>'
});

这时候会发现只有body下的两个子元素div背景变黄,而class为mini的div没有改变。

2.3 根据相对位置选择元素

require(["dojo/query","dojo/domReady!"], function(query) {
    query("#one+div").style("background","yellow")
});    //注意是兄弟节点的关系,id为'one'的下一个兄弟节点,中间使用'+'

这时候会发现只有id为’one’的下一个兄弟节点背景变黄,而其它的的div没有改变。

3. 内容过滤选择器

创建html标签

 <body class="tundra">
           <div id="one">di</div>
           <div>
           </div>
    </body>

选取含有文本“di”的div元素并改变其背景色:

require(["dojo/query","dojo/domReady!"], function(query) {                query("div:contains('di')").style("background","yellow")
});

标签(空格分隔): dojo/query选择器


dojo/dom模块中只能通过DOM的ID属性来选择DOM元素,这远远不能满足我们的要求。因此,dojo/query模块中提供了更多的选择方法。该模块中大致可分为7类选择器:

  • 基本选择器
  • 层次选择器
  • 内容过滤选择器
  • 属性选择器
  • 子元素过滤选择器
  • 表单对象属性过滤选择器
  • 表格选择器

query模块选择的是一个DOM数组(哪怕只有一个DOM元素也是数组)

1. 基本选择器

在html中定义标签

<div id='box' class='box'>
<div class='anotherbox'>

1.1 通过id选择

//使用query选择DOM元素
require(["dojo/query","dojo/domReady!"],function(query){
    query("#box");
})

1.2 通过class选择

//使用query选择DOM元素
require(["dojo/query","dojo/domReady!"],function(query){
    query(".box");
})

1.3 通标签名选择

//使用query选择DOM元素
require(["dojo/query","dojo/domReady!"],function(query){
    query("div");
})

1.4 多个选择器一起使用

//使用多个选择器时,选择器间用逗号分隔
require(["dojo/query","dojo/domReady!"],function(query){
    query("#box",".anotherbox");
})

2. 层次选择器

2.1 祖先和后代元素的关系

创建html标签

 <body class="tundra">
           <div id="one">
               <div class="mini"></div>
           </div>
           <div>

           </div>
    </body>

使用query选择器选择div元素

require(["dojo/query","dojo/domReady!"],function(query){
    query("body div").style("background","yellow");  //注意是祖先和后代的关系,body和div间使用空格
})

这时候会发现所有的div背景颜色都变成了黄色(yellow)。

2.2 父与子元素的关系

require(["dojo/query","dojo/domReady!"], function(query) {               query("body>div").style("background","yellow")  //注意是父元素和子元素的关系,body和div间使用'>'
});

这时候会发现只有body下的两个子元素div背景变黄,而class为mini的div没有改变。

2.3 根据相对位置选择元素

require(["dojo/query","dojo/domReady!"], function(query) {
    query("#one+div").style("background","yellow")
});    //注意是兄弟节点的关系,id为'one'的下一个兄弟节点,中间使用'+'

这时候会发现只有id为’one’的下一个兄弟节点背景变黄,而其它的的div没有改变。

3. 内容过滤选择器

创建html标签

 <body class="tundra">
           <div id="one">di</div>
           <div>
           </div>
    </body>

选取含有文本“di”的div元素并改变其背景色:

require(["dojo/query","dojo/domReady!"], function(query) {                query("div:contains('di')").style("background","yellow")
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值