日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Dojo query 库

發(fā)布時間:2024/4/14 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dojo query 库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Dojo Query 庫的核心是一個 dojo.query 函數(shù),該函數(shù)接收一個查詢字符串,以及一個可選的 DOM 節(jié)點作為參數(shù),返回一個 NodeList 對象。一方面我們可以通過 id,元素名稱,屬性,CSS 等及其組合設置精巧的查詢字符串準確控制返回的結果,另一方面返回的 NodeList 對象提供了豐富的操作接口,對其調(diào)用的很多方法(如 addClass)都可以直接作用于所有的元素,并且支持鏈式調(diào)用。如下面的例子:

?

dojo.query("div.someClassName").style("backgroundColor","gray").forEach("item.disabled= true;");

首先在 DOM 根結點查詢 class 為“someClassName”的 div 元素,對于返回的所有元素,將 style 屬性“backgroundColor”設置為“gray”,然后將元素的“disabled”屬性設置為“true”。

dojo.query("img"); //查詢頁面所有的img 標簽 dojo.query("h1,h2,h3"); //查詢頁面所有的h1 ha2 h3 標簽 dojo.query("#widget123"); //查詢id 為widget123的元素 dojo.query(".offToSeeTheWij"); 查詢class=offToSeeTheWij的所有元素 dojo.query("p:first-child"); //利用 first-child 來查詢?nèi)我夤?jié)點下的首個 p 子元素//下列代碼就是分別用來查詢 name 屬性的取值以“item”打頭,以“item”結尾,和包含“item”字樣的元素的: dojo.query("[name^=item]"); dojo.query("[name$=item]"); dojo.query("[name*=item]");

?

上面我們看到的有關于 Dojo Query 的例子都只接受一個參數(shù),它們實現(xiàn)的是在全局范圍內(nèi),即整個頁面范圍內(nèi),對節(jié)點進行查詢。Dojo Query 還支持局部范圍內(nèi)的相對查詢。此時,除了查詢表達式外,我們需要傳入另一個參數(shù),用以指示查詢起始的根節(jié)點。該參數(shù)可以是一個字符串,Dojo Query 會將其視作元素的 id 值;或者我們也可以傳入一個 DOM 節(jié)點。

<html> <head> <script type="text/javascript" src="../js/dojo/dojo.js"></script> <script type="text/javascript"> dojo.addOnLoad(function() { console.debug(dojo.query("button").length); // 輸出"3"console.debug(dojo.query("button", "thisForm").length); // 輸出”1”}); </script> </head> <body> <button id="b1" /> <button id="b2" /> <form id="thisForm" > <button id="formB" /> </form> </body> </html>

?

對查詢結果進行后續(xù)操作

通過以上章節(jié)的介紹,我們知道,Dojo Query 返回的結果是 NodeList 對象。NodeList 是一個擴展的 Array 對象,它提供了豐富的操作接口方法。基本而言,NodeList 提供了幾乎所有操作 DOM 的方法,且簡單易用;因為它本身是 Array 對象,所以它支持所有的 Dojo 對數(shù)組的操作方法;同時,它也提供了很多直接處理事件的方法。而且,NodeList 還有一個顯著的優(yōu)點,就是很多方法支持鏈式調(diào)用。所謂鏈式調(diào)用,是指 NodeList 的方法調(diào)用之后仍會返回當前的對象,可以通過“.”級聯(lián)繼續(xù)應用其他的操作,例如 :

?

dojo.query(".thinger ").style {border :"1px" }).removeClass("thinger").addClass("thinger2");

?

作為 Array 對象,NodeList 具有長度屬性,而且可以通過 at,forEache,push,pop 這些方法來操縱它。需要注意的是 at,map,forEach,slice,splice,contact 等都可以進行鏈式調(diào)用,但是 push,pop,shift 和 unshift 則是不可以的。

forEach方法

dojo.query("div").forEach(function(node, index, array){ node.innerHTML = "new version content!"; }); // try var elementB= dojo.query("#"+inputStr).parents(".classA").first(); var elementC= dojo.query(elementB).parent(".classB").first(); function displayIcon(node,type){dojo.query(node).children("a").children("img").forEach(function(img,index,nodeList){dojo.attr(img,"src","images2/expanded.gif");}

?

總結

以上是生活随笔為你收集整理的Dojo query 库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。