首页 web前端 js教程 jQuery中selector,context几种调用方式代码实例详解

jQuery中selector,context几种调用方式代码实例详解

Jun 19, 2017 am 10:36 AM
context jquery selector 几种 调用

首先我们给出下面的HTML代码:

<p id="parent" class="parent">
	 <p class="child">
	  child1
	</p>
	<p class="child">
	child2
	</p>
</p>
<p id="parent1" class="parent">
	 <p class="child">
	  child1
	</p>
	<p class="child">
	child2
	</p>
</p>
登录后复制

调用方式1:第二个参数context是DOM元素

var doms=$(".child",$("#parent")[0]);
console.log(doms);
登录后复制

这时候第二个参数是DOM对象,打印[p.child, p.child, prevObject: jQuery.fn.init[1], context: p#parent, selector: ".child"]
调用方式2:第二个参数context是jQuery对象

var doms=$(".child",$($("#parent")[0]));
console.log(doms);
登录后复制

这时候打印结果和上面第一种情况一样,[p.child, p.child, prevObject: jQuery.fn.init[1], context: p#parent, selector: ".child"]
调用方式3:第二个参数是一个DOM数组

var doms=$(".child",[document.getElementById("#parent"),document.getElementById("#parent1")]) 
console.log(doms);
登录后复制

调用方式4:第二个参数是一个jQuery对象数组

var doms=$(".child",$(".parent")) 
console.log(doms);
登录后复制
登录后复制

这种方式的结果和第三种方式是完全一样的!
调用方式5:传入的参数是一个函数,该函数会在ready函数调用的时候调用

 $(function()
  {
    console.log("dom ready");
  })
登录后复制

我们现在从源码中分析这几种情况:

如果传入DOM的情况

else if ( selector.nodeType ) {
		this.context = this[0] = selector;
		this.length = 1;
		return this;
		// HANDLE: $(function)
		// Shortcut for document ready
		}
登录后复制

如果传入DOM元素,那么直接把元素放在jQuery对象上面,同时把length自增!

如果传入了jQuery对象

if ( selector.selector !== undefined ) {
			this.selector = selector.selector;
			this.context = selector.context;
		}
登录后复制

如果传入了jQuery对象,那么也是把参数jQuery的selector和context直接封装到新创建的jQuery对象上面!调用方式如$($(''))这种方式!

如果传入的是一个函数

 else if ( jQuery.isFunction( selector ) ) {
			return typeof rootjQuery.ready !== "undefined" ?
			rootjQuery.ready( selector ) :
				// Execute immediately if ready is not present
				selector( jQuery );
		}
登录后复制

如果传入了一个函数,那么直接放在$(document).ready()中等待执行,如果没有ready函数那么直接执行(使用了jQuery框架那么ready是存在的!)
如果是传入了一个DOM数组或者jQuery的对象

return jQuery.makeArray( selector, this );
登录后复制

通过jQuery.makeArray我们可以把所有的参数封装到一个对象上面,但是这个函数第二个参数默认是数组对象,但是这里传入了jQuery对象,那么最后返回的结果就是jQuery对象。因此,我们通过这种方式把我们传入的DOM数组或者jQuery对象全部封装到一个新的jQuery对象上面返回!这种方式的调用如下:

 var $doms=$([document.getElementById(&#39;ql&#39;),document.getElementById(&#39;fkl&#39;)]);
   //把上面的DOM数组封装到新创建的jQuery对象上
   console.log($doms);
登录后复制

下面这种调用方式是我们最常用的方式,该方式包含选择对象的上下文:

              else if ( !context || context.jquery ) {
				return ( context || rootjQuery ).find( selector );
			// HANDLE: $(expr, context)
			// (which is just equivalent to: $(context).find(expr)
			} else {
				return this.constructor( context ).find( selector );
			}
登录后复制

这种方式就是如$('li',$('ul'))第二个参数如果是jQuery对象,那么直接调用find方法,否则先把第二个参数的DOM对象封装为jQuery对象然后调用find方法进行查找!这种调用方式如下:

 var doms=$(".child",$(".parent")) ;
   //这时候我们会选择class为parent元素下的所有的class为child的元素集合
   //作为jQuery对象返回
   console.log(doms);
登录后复制

很显然,我们传入的第二个参数是jQuery对象,那么我们调用了Sizzle的find方法来进行查询,如果第二个参数是一个DOM数组,也会该DOM数组封装成为jQuery对象然后以此为上下文进行查询!

这时候我又要提一下这种调用方式(第二个参数可以是DOM数组)

var doms=$(".child",$(".parent")) 
console.log(doms);
登录后复制
登录后复制

这时候通过的就是jQuery对象具有的find实例方法来完成的(调用Sizzle来完成),所以返回的就是DOM数组中每一个DOM对象的所有的满足selector的子元素组成的集合,但是这是去重的!

以上是jQuery中selector,context几种调用方式代码实例详解的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

jQuery引用方法详解:快速上手指南 jQuery引用方法详解:快速上手指南 Feb 27, 2024 pm 06:45 PM

jQuery引用方法详解:快速上手指南jQuery是一个流行的JavaScript库,被广泛用于网站开发中,它简化了JavaScript编程,并为开发者提供了丰富的功能和特性。本文将详细介绍jQuery的引用方法,并提供具体的代码示例,帮助读者快速上手。引入jQuery首先,我们需要在HTML文件中引入jQuery库。可以通过CDN链接的方式引入,也可以下载

jQuery中如何使用PUT请求方式? jQuery中如何使用PUT请求方式? Feb 28, 2024 pm 03:12 PM

jQuery中如何使用PUT请求方式?在jQuery中,发送PUT请求的方法与发送其他类型的请求类似,但需要注意一些细节和参数设置。PUT请求通常用于更新资源,例如更新数据库中的数据或更新服务器上的文件。以下是在jQuery中使用PUT请求方式的具体代码示例。首先,确保引入了jQuery库文件,然后可以通过以下方式发送PUT请求:$.ajax({u

jQuery如何移除元素的height属性? jQuery如何移除元素的height属性? Feb 28, 2024 am 08:39 AM

jQuery如何移除元素的height属性?在前端开发中,经常会遇到需要操作元素的高度属性的需求。有时候,我们可能需要动态改变元素的高度,而有时候又需要移除元素的高度属性。本文将介绍如何使用jQuery来移除元素的高度属性,并提供具体的代码示例。在使用jQuery操作高度属性之前,我们首先需要了解CSS中的height属性。height属性用于设置元素的高度

jQuery小技巧:快速修改页面所有a标签的文本 jQuery小技巧:快速修改页面所有a标签的文本 Feb 28, 2024 pm 09:06 PM

标题:jQuery小技巧:快速修改页面所有a标签的文本在网页开发中,我们经常需要对页面中的元素进行修改和操作。在使用jQuery时,有时候需要一次性修改页面中所有a标签的文本内容,这样可以节省时间和精力。下面将介绍如何使用jQuery快速修改页面所有a标签的文本,同时给出具体的代码示例。首先,我们需要引入jQuery库文件,确保在页面中引入了以下代码:&lt

使用jQuery修改所有a标签的文本内容 使用jQuery修改所有a标签的文本内容 Feb 28, 2024 pm 05:42 PM

标题:使用jQuery修改所有a标签的文本内容jQuery是一款流行的JavaScript库,被广泛用于处理DOM操作。在网页开发中,经常会遇到需要修改页面上链接标签(a标签)的文本内容的需求。本文将介绍如何使用jQuery来实现这个目标,并提供具体的代码示例。首先,我们需要在页面中引入jQuery库。在HTML文件中添加以下代码:

如何判断jQuery元素是否具有特定属性? 如何判断jQuery元素是否具有特定属性? Feb 29, 2024 am 09:03 AM

如何判断jQuery元素是否具有特定属性?在使用jQuery操作DOM元素时,经常会遇到需要判断元素是否具有某个特定属性的情况。这种情况下,我们可以借助jQuery提供的方法来轻松实现这一功能。下面将介绍两种常用的方法来判断一个jQuery元素是否具有特定属性,并附上具体的代码示例。方法一:使用attr()方法和typeof操作符//判断元素是否具有特定属

了解jQuery中eq的作用及应用场景 了解jQuery中eq的作用及应用场景 Feb 28, 2024 pm 01:15 PM

jQuery是一种流行的JavaScript库,被广泛用于处理网页中的DOM操作和事件处理。在jQuery中,eq()方法是用来选择指定索引位置的元素的方法,具体使用方法和应用场景如下。在jQuery中,eq()方法选择指定索引位置的元素。索引位置从0开始计数,即第一个元素的索引是0,第二个元素的索引是1,依此类推。eq()方法的语法如下:$("s

matlab如何调用m文件-matlab调用m文件的方法 matlab如何调用m文件-matlab调用m文件的方法 Mar 04, 2024 pm 01:49 PM

有很多朋友还不知道matlab如何调用m文件,所以下面小编就讲解了matlab调用m文件的方法,有需要的小伙伴赶紧来看一下吧,相信对大家一定会有所帮助哦。1、首先打开matlab软件,在主界面中点击“打开”,如下图所示。2、然后选择一个需要打开的m文件,选择打开,如下图所示。3、接着在编辑器中看m文件的文件名和变量数目,如下图所示。4、可以在命令行中输入m文件名后括号加变量值,就可以调用,如下图所示。5、最后就可以成功调用m文件,如下图所示。上面就是小编为大家带来的matlab如何调用m文件的全

See all articles