`

wrap.js源码

 
阅读更多

提供wrap、wrapAll、wrapInnner、unWrap方法,外部包裹、内部包裹、或移除父级包裹元素

 

define([
	"./core",
	"./core/init",
	"./manipulation", // clone
	"./traversing" // parent, contents
],function(jQuery){

jQuery.fn.extend({
	// 只能针对单个元素,wrap方法可以是多个元素
	// html可以是选择器,将拷贝页面上的元素用来包裹当前元素,被拷贝对象在页面既有两份
	// 或html字符串,形成dom元素插在当前元素前头,在把当前元素用循环语句插入该dom最底层
	wrapAll:function(html){
		var wrap;

		if ( this[0] ){
			if ( jQuery.isFunction(html) ){
				html=html.call(this[0]);
			}

			wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);

			if ( this[0].parentNode ){
				wrap.insertBefore(this[0]);
			}

			wrap.map(function(){
				var elem=this;

				while ( elem.firstElementChild ){
					elem=elem.firstElementChild;
				}

				return elem;
			}).append(this);
		}

		return this;
	},

	// 当前元素的子元素使用html包裹
	wrapInner:function(html){
		if ( jQuery.isFunction(html) ){
			return this.each(function(i){
				jQuery(this).wrapInner(html.call(this,i));
			} );
		}

		return this.each(function(){
			var self=jQuery(this),
				contents=self.contents();// 子元素

			if ( contents.length ){
				contents.wrapAll(html);
			}else{
				self.append(html);
			}
		});
	},

	wrap:function(html){
		var isFunction=jQuery.isFunction(html);

		return this.each(function(i){
			jQuery(this).wrapAll(isFunction ? html.call(this,i) : html);
		});
	},

	// 移除匹配selector的父节点
	unwrap:function(selector){
		this.parent(selector).not("body").each(function(){
			jQuery(this).replaceWith(this.childNodes);
		});
		return this;
	}
});

return jQuery;
});

 

0
2
分享到:
评论

相关推荐

    node-v4.2.5.tar.gz(Source Code).tar.gz

    Node.js是一款基于Chrome V8引擎的JavaScript运行环境,它让JavaScript能够在服务器端执行,极大地拓宽了JavaScript的应用领域。本篇文章将围绕“node-v4.2.5.tar.gz”这一源代码压缩包,详细探讨Node.js v4.2.5版本...

    node6.9.3源码

    这个源码版本包含了众多核心模块的实现,是理解Node.js工作原理和深入学习JavaScript运行时环境的绝佳资料。 在Node.js 6.9.3中,我们可以看到以下几个关键知识点: 1. **V8引擎**:Node.js使用Google的V8 ...

    ajax:prototype.js很全的手册

    Prototype.js是一个JavaScript库,它为Web开发提供了丰富的功能,特别是针对Ajax交互。Ajax,即异步JavaScript和XML,是一种在不刷新整个页面的情况下更新部分网页内容的技术。Prototype.js通过简化DOM操作、事件...

    手机端卡片模式网站模板是一款常用的网站模板小部件下载。.zip源码资源下载

    flex-wrap: wrap; } .card { flex-basis: calc(33.33% - 20px); margin: 10px; /* 其他卡片样式 */ } ``` 这将使卡片在一行内均匀分布,当屏幕尺寸变小时,它们会自动换行。 3. JavaScript 交互: 如果...

    室内装修设计CSS3模板是一款适合装修设计团队的CSS3网站模板。.zip源码资源下载

    4. **文本样式**:CSS3提供了text-shadow用于创建文字阴影,text-wrap处理文字溢出,以及text-align-last、writing-mode等属性,增强了文本在页面上的排版控制。 5. **动画与过渡**:CSS3的transition和animation...

    Qt6 QML Book/JavaScript/创建JS控制台示例源码

    3. **JavaScript引擎集成**:在QML中,你可以通过`import QtQuick.JS`来访问内置的JavaScript引擎。然后,你可以创建一个JavaScript对象,用于执行用户输入的命令。 4. **输入与输出**:使用JavaScript引擎的`...

    avalon js实现仿google plus图片多张拖动排序附源码下载.docx

    在本文中,我们将探讨如何使用 Avalon.js 实现一个仿 Google Plus 的图片多张拖动排序功能,并提供源码下载。Avalon.js 是一个基于 Microsoft Knockout.js 的轻量级、高性能的 MVVM 框架,适用于构建前端单页应用。...

    backbound. underscore

    3. **函数操作**:underscore.js 提供了throttle、debounce、once、wrap等函数,这些函数与事件驱动和异步编程密切相关。比如,`_.throttle` 可以限制函数的执行频率,防止过于频繁的调用,`_.debounce` 用于延迟...

    cocos2d_x之大富翁源码

    它基于C++,支持多种编程语言,如Lua和JavaScript,为开发者提供了丰富的功能和高效的性能。本资源包中的"大富翁源码"是基于Cocos2d-x实现的一款经典的大富翁游戏,包含了单机模式、联网模式以及自定义联网模式,这...

    手机wrap网站触屏版HTML5左侧展开导航菜单手机wap网站特效源码

    ### 手机wrap网站触屏版HTML5左侧展开导航菜单手机WAP网站特效源码解析 #### 一、概述 本篇文章将详细介绍一款应用于手机WAP网站中的HTML5左侧展开导航菜单特效源码。该特效旨在提升用户体验,通过在手机触屏版...

    javascript选项卡源码

    在本示例中,"javascript选项卡源码" 提供了一个用JavaScript实现的简单选项卡功能,包括HTML、JavaScript和CSS三个部分。下面将详细介绍这三个部分在实现选项卡功能中的作用和相关知识点。 1. HTML(HyperText ...

    手机wrap网站蓝色的wap手机旅游网站模板源码

    ### 手机wrap网站蓝色的wap手机旅游网站模板源码 #### 一、概述 在当前移动互联网时代,移动端网站的开发与优化显得尤为重要。随着智能手机的普及和技术的进步,越来越多的用户选择通过手机来访问互联网。为了更好...

    手机wrap网站绿色的蔬菜水果手机微信商城模板源码

    ### 手机wrap网站绿色的蔬菜水果手机微信商城模板源码 #### 概述 “手机wrap网站绿色的蔬菜水果手机微信商城模板源码”是一款专门为移动设备设计的、适用于微信平台的电子商务模板。该模板采用了清新自然的绿色...

    手机wrap网站仿手机号码归属地查询触屏版手机wap查询网站模板源码

    ### 手机wrap网站仿手机号码归属地查询触屏版手机WAP查询网站模板源码 在当前数字化时代,移动互联网应用已经深入到人们生活的方方面面,而手机号码归属地查询作为一个实用的功能,对于电信运营商、电商平台乃至...

    基于vuejs实现树形表格的封装vuetreetable

    通过阅读源码,你可以更深入地理解这个组件的工作原理,并根据自己的需求进行定制和扩展。 总的来说,实现一个基于Vue.js的树形表格组件,需要对Vue的组件系统、模板语法、数据绑定、事件处理以及性能优化有较深入...

    Element-ui之ElScrollBar组件滚动条的使用方法

    ElScrollBar 组件的源码位于 `node_modules/element-ui/packages/scrollbar` 目录下的 `index.js` 文件中。通过分析源码,可以了解到 ElScrollBar 组件是如何根据传入的属性来控制滚动条的外观和行为。源码中还包括...

    手机wrap网站简洁的药房网手机商城模板html源码

    ### 手机wrap网站简洁的药房网手机商城模板html源码 在当前移动互联网蓬勃发展的背景下,手机网站的设计与开发越来越受到重视。本资源提供了一款针对药房网手机商城设计的HTML模板,该模板采用了简洁的设计风格,...

    前端开源库-bundl-wrap

    在这个压缩包文件 "bundl-wrap-master" 中,我们可以预期找到关于这个开源库的源码和其他相关资源。 “捆绑包装”(Bundling)是前端模块化构建流程中的关键步骤,其主要目的是将多个分散的JavaScript模块合并成一...

    前端开源库-gulp-wrap-amd

    【文件名称列表】"gulp-wrap-amd-master"可能是这个项目的主分支或者默认版本,通常包含项目源码、示例、文档和配置文件等。在这个目录下,你可以找到`package.json`文件,它是Node.js项目的配置文件,包含了项目...

    手机wrap网站简洁的漫画手机网站模板html源码整站

    ### 手机Wrap网站简洁的漫画手机网站模板HTML源码整站 在当前移动互联网时代,随着智能手机的普及以及移动网络技术的不断发展,越来越多的人习惯于通过手机浏览各种信息和服务。在这种背景下,针对手机端优化的网站...

Global site tag (gtag.js) - Google Analytics