`

一直不知道load还有这个用法,看源码才发现,汗

阅读更多

今天看JQuery源码中,无意中发现load源码中有如下代码:

 

var off = url.indexOf(" ");
		if ( off >= 0 ) {
			var selector = url.slice(off, url.length);
			url = url.slice(0, off);
		}

 

感觉很是奇怪,以空格分割URL干嘛呢?

 

查看源码,发现好像空格后可以跟选择符,然后就查了下API,果真...

 

jQuery 1.2 中,可以指定选择符,来筛选载入的 HTML 文档,DOM 中将仅插入筛选出的 HTML 代码。语法形如 "url #some > selector"

 用法如:

$("#links").load("/Main_Page #p-Getting-Started li");
 

附上源码:

 

load: function( url, params, callback ) {
		if ( typeof url !== "string" )
			return this._load( url );

		var off = url.indexOf(" ");
		if ( off >= 0 ) {
			var selector = url.slice(off, url.length);
			url = url.slice(0, off);
		}

		// Default to a GET request
		var type = "GET";

		// If the second parameter was provided
		if ( params )
			// If it's a function
			if ( jQuery.isFunction( params ) ) {
				// We assume that it's the callback
				callback = params;
				params = null;

			// Otherwise, build a param string
			} else if( typeof params === "object" ) {
				params = jQuery.param( params );
				type = "POST";
			}

		var self = this;

		// Request the remote document
		jQuery.ajax({
			url: url,
			type: type,
			dataType: "html",
			data: params,
			complete: function(res, status){
				// If successful, inject the HTML into all the matched elements
				if ( status == "success" || status == "notmodified" )
					// See if a selector was specified
					self.html( selector ?
						// Create a dummy div to hold the results
						jQuery("<div/>")
							// inject the contents of the document in, removing the scripts
							// to avoid any 'Permission Denied' errors in IE
							.append(res.responseText.replace(/<script(.|\s)*?\/script>/g, ""))

							// Locate the specified elements
							.find(selector) :

						// If not, just inject the full result
						res.responseText );

				if( callback )
					self.each( callback, [res.responseText, status, res] );
			}
		});
		return this;
	}
 

 

 

分享到:
评论

相关推荐

    微服务生态组件之Spring Cloud LoadBalancer详解和源码分析.doc

    微服务生态组件之Spring Cloud LoadBalancer详解和源码分析 Spring Cloud LoadBalancer是Spring Cloud官方自己提供的客户端负载均衡器,抽象和实现,用来替代Ribbon。下面我们将从常见使用示例开始,一步步分析源码...

    dubbo 配置 loadbalance 不生效?撸一把源码(csdn)————程序.pdf

    开发者发现`dubbo.consumer.check`属性在`application.properties`中被设置,虽然表面上看起来只设置了这一个属性,但实际上,Spring Boot的自动配置机制会根据这个属性生成一个完整的`consumer`配置,其中`load...

    jq 之 load应用@闪光网@源码

    在这个“jq之load应用@闪光网@源码”的主题中,我们主要探讨的是jQuery中的`load()`函数,它是jQuery AJAX方法的一种,用于加载远程HTML片段并插入到当前页面中,极大地提升了网页动态加载内容的能力。 `load()`...

    load-pkg-源码.rar

    load-pkg使用内置的JSON.parse()方法解析这个文件,提取出包名、版本、依赖等关键信息。 3. **依赖管理**:load-pkg不仅要读取本地的依赖,还需要处理这些依赖的层级关系。这包括解析dependencies、devDependencies...

    datalist和gridview用法源码

    下面我们将深入探讨这两个控件的用法及其源码实现。 ### DataList 控件 `DataList` 是一个流布局控件,它允许自定义布局和样式,以创建灵活多样的数据展示格式。相比于 `GridView`,`DataList` 更适合于需要非固定...

    jQuery ajax - load() 方法

    同时,`load()` 不支持 `dataType`、`cache`、`contentType` 等 `ajax` 设置,这也限制了其在某些情况下的使用。 总结,`jQuery` 的 `load()` 方法是一个简洁的工具,用于从服务器加载HTML内容并插入到指定元素。...

    hibernate中get和load方法的区别

    这个方法适合在你知道对象肯定存在于数据库,或者不介意立即触发一次数据库查询时使用。 相比之下,`load`方法的工作方式略有不同。它并不会立即执行SQL查询,而是返回一个代理对象。这个代理对象在需要的时候...

    c#图像操作之LoadFLASH源码.rar

    "c#图像操作之LoadFLASH源码.rar"这个压缩包显然包含了一个使用C#语言处理SWF(Adobe Flash)文件的项目。本文将深入探讨C#中的图像操作,特别是针对SWF文件的加载和处理。 首先,我们要了解C#中的图像处理库。.NET...

    Hibernate的get和load方法的区别

    在Hibernate源码中,`get`方法直接调用了`sessionFactory`的`load`方法,但是传递了一个额外的参数`LockMode.NONE`,这表明它不希望获取任何锁定。而`load`方法允许设置不同的锁模式,以支持并发控制。 在实际开发...

    最新二级域名分发系统改版源码分享

    在使用此源码时,有几个关键点需要注意,以确保顺利运行。 首先,这个系统是用PHP7.2版本编写的,这意味着它可能不兼容更早的PHP版本。PHP7.2引入了许多性能提升和安全改进,对于这样的源码,使用相应版本的PHP环境...

    load_data_loaddatapython_加载数据程序_pythonload_data_源码

    `README.md`文件可能包含了关于这个工具的使用指南和解释,而`recommendation`文件可能是加载数据的一个示例或推荐数据集。 在Python中,有许多内置库用于加载不同格式的数据,如Pandas库用于CSV、Excel等表格数据...

    jdk,jvm源码

    当我们谈论"jdk,jvm源码"时,我们主要关注的是JVM的内部工作机制以及如何通过源码来理解这个过程。 JVM的运行机制主要包括以下几个关键部分: 1. 类加载子系统:负责加载、验证、解析和初始化.class文件。加载阶段...

    中国蚁剑源码antSword-2.1.9.zip

    用户只需下载源码,解压后指定load指向此文件夹,即可继续使用蚁剑。 5. **易用界面**:蚁剑采用了直观的图形用户界面,使得非编程背景的测试人员也能快速上手。 6. **源码可读性**:开源意味着源码的可读性与可...

    50个jquery例子源码

    这个"50个jQuery例子源码"的压缩包,旨在帮助网页设计师和开发者更快速、更高效地掌握jQuery的核心功能。** 1. **DOM操作**:jQuery提供了一系列方便的函数来操作DOM元素,如`$("#id")`用于选取指定ID的元素,`....

    Objective-C 中 +load 与 +initialize

    在阅读博客《Objective-C中的+load与+initialize》时,你可以深入学习这两个方法的详细使用技巧,包括它们的调用顺序、如何避免潜在的问题,以及如何在多线程环境中正确使用它们。通过了解这些,你将能更好地掌握...

    android安卓源码解析-Sytem.loadLibrary.pdf

    这两个方法都用于加载native代码库,但它们的用法和工作原理存在一些差异。以下是对这两个方法以及与之相关知识点的详细介绍: 1. System.loadLibrary(): 这个方法主要用于加载编译时指定生成的.so文件,该文件通常...

    PHP在线sg14加密系统源码

    4. **使用方法** 使用PHP在线sg14加密系统源码,一般步骤如下: - **获取源码**:从指定的渠道下载加密系统的源码文件。 - **上传**:将源码上传到你的服务器或开发环境中。 - **配置**:根据系统的文档或说明,...

    CxImage图像库源码

    通过分析和运行这个示例,开发者可以快速理解库的使用方法,并了解如何将其整合到自己的项目中。 在实际开发中,CxImage可以用于创建图像查看器、图像编辑器,或者作为游戏引擎的一部分,用于处理游戏内的图形资源...

    kettle源码环境搭建及插件源码调试教程

    Kettle,又称为Pentaho Data Integration (PDI),是一个开源的数据集成工具,它提供了图形化的数据转换和ETL(Extract, Transform, Load)功能。要对Kettle进行源码级的开发和调试,你需要先搭建源码环境并学会如何...

    RKNN NET C++封装源码源码文件

    RKNN (Rapid Kernel Neural Network) 是一个针对嵌入式设备优化的深度学习推理框架,它旨在提供高效、低功耗的神经网络模型执行。在本压缩包中,"rknn_net.cpp" 和 "rknn_net.h" 文件是C++接口的实现,用于与RKNN...

Global site tag (gtag.js) - Google Analytics