手机版

阅读jQuery V(取DOM元素)

时间:2021-10-19 来源:互联网 编辑:宝哥软件园 浏览:

在jQuery的$调用之后,如果想要获取DOM元素,可以使用get方法,如下所示:复制代码如下: //Mode 1 $('div ')。get(1);//获取页面中的第二个div。当然,也可以使用数组索引获取复制的代码,如下所示://Mode 2 $(' div ')[1];//获取页面中的第二个div。以上两种方法都可以获取特定的DOM元素,但是要获取DOM元素集合,需要使用toArray方法复制代码如下: $('div ')。toArray();//返回页面中的所有div,依次放入数组中,查看get方法的源代码。复制代码如下: get 3360 function(num){ return num==null?//返回一个“干净”的数组this.toArray() : //只返回对象(num 0?this[this . length num]: this[num]);},get包含一个三元运算符,即两个分支。分支1,不传递参数时,获取所有DOM元素(调用toArray分支2,当num为数字(索引)时,返回指定的DOM元素(当数字为负时,反向获取);分支1实际上将jQuery对象(伪数组)转换为实数组,分支2实际上采用“伪数组”元素(带方括号[])。下面的$('div ')用来描述整个调用过程1。获取page div元素(document . getelementsbytagname(' div ')2、将集合HTMLCollection/NodeList转换为实数组3、将数组转换为伪数组/ArrayLike(jQuery对象),如图

第一步是选择器做什么;第二步是将HTMLCollection/NodeList转换为数组。第三步,将数组转换为伪数组/ArrayLike(jQuery对象),只需调用下一个数组的push即可。也许下面的例子很容易理解,复制代码如下:varjqobj={0: '一',1: '二',2: '三',length:3},//像ary=['一','二','三'这样的伪数组。//array//将伪数组(ArrayLike)转换为数组函数jqobjtoarray(JSON){ var slice=array . prototype . slice;返回slice.call(json,0);}//将数组转换为伪数组(arraylike)函数arraytojqobj (ary) {varobj={},push=array . prototype . push;push.apply(obj,ary);返回对象;} console . log(jqObjToArray(jqObj));console . log(ArrayToJqObj(ary));JQuery还提供了first/last/eq/slice方法,与上面提到的get/toArray不同。它们返回jQuery对象,而不是HTMLElement。下面的html片段复制代码如下: div id=' a ' a/div div id=' b ' b/div div id=' c ' c/div div id=' d ' d/div $(' div ')。first()返回jq对象集合的第一个元素,即Div[id=a],结构。//.意味着省略了其他属性$(“div”)。Last()返回jq对象集合的最后一个元素,即Div[id=d],结构: {03360 div,长度33601,};$(“div”)。等式(2)返回jq对象匹配的第三个元素,即Div[id=c],结构: {0: div,长度:1,};查看源代码,我们知道eq方法直接在1、first和last方法中调用。2.eq方法中调用slice方法。因此,切片法是根本。这个方法让我们自然而然地想到了Array的切片方法。事实上,jQuery使用数组的push和slice方法。1.使用Array.prototype.slice方法将伪数组转换为数组2。使用Array.prototype.push方法将数组转换为伪数组。当然,jQuery中的slice方法调用pushStack。我在这里缩写了slice,复制代码如下: slice 3360 function(){ varret=$();//关键句子,构造一个新的jq对象,varary=slice。应用(这个,参数);//这里是一个jq对象,根据参数转换为数组子集push.apply(ret,ary);//转换为jq对象,即以伪数组形式返回ret},相关性:将HTMLCollection/NodeList/伪数组转换为数组zChain-05.rar。

版权声明:阅读jQuery V(取DOM元素)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。