16-5如何包裹元素及删除父元素: parent() wrap() wrapAll() wrapInner() unwrap()

16-5如何包裹元素及删除父元素: parent() wrap() wrapAll() wrapInner() unwrap()

勤竿懊澜栏掳瓶飘旅淳饶剩傲


原始结构:

<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<title>5.元素包裹</title>
</head>
<body>
	<a href="https://www.tmall.com">天猫</a>
	<a href="https://taobao.com">淘宝</a>
	<a href="https://www.jd.com/">京东</a>
	<a href="https://www.suning.com">苏宁</a>
	<p>网上购物:</p>
	<button>wrap()</button>
	<button>wrapInner()</button>
	<button>wrapAll()</button>
	<button>unwrap()</button>
</body>
</html>

执行:

16-5如何包裹元素及删除父元素: parent() wrap() wrapAll() wrapInner() unwrap()第1张


/**
* 1.wrap(content):
* 功能:包裹每一个节点
* 参数:内容或元素
*/
用法一.用一个新标签来包裹目标元素

将每一个a标签都用li包裹

<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript">
	$('button:first').click(function(){
		//每个a用新生成的li进行包裹
		$('a').wrap($('<li>'))
	})
</script>

执行,点击wrap(),此时每一个a标签都被li标签包裹着

16-5如何包裹元素及删除父元素: parent() wrap() wrapAll() wrapInner() unwrap()第2张

简写:

<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript">
	$('button:first').click(function(){
		//每个a用新生成的li进行包裹
		$('a').wrap('<li>')
	})
</script>

执行效果一致。

用法二.用已存在的标签来包裹目标节点

每一个a都用已经存在的p标签【<p>网上购物:</p>】来包裹

<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript">
	$('button:first').click(function(){
		//用法二.用已存在的标签来包裹目标节点
		$('a').wrap($('p'))
	})
</script>

执行,点击wrap(),此时每一个a都被【<p>网上购物:</p>】包裹

16-5如何包裹元素及删除父元素: parent() wrap() wrapAll() wrapInner() unwrap()第3张

对于下方的代码,最外面的是li而不是p

<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript">
	$('button:first').click(function(){
		$('a').wrap('<li>')
		$('a').wrap($('p'))
	})
</script>

执行,点击wrap()

16-5如何包裹元素及删除父元素: parent() wrap() wrapAll() wrapInner() unwrap()第4张

因为每次执行,返回的都是a标签

<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript">
	$('button:first').click(function(){
		var res=$('a').wrap('<li>')
		$('a').wrap($('p'))
		console.log(res)
	})
</script>

执行,第一次执行返回的是a标签

16-5如何包裹元素及删除父元素: parent() wrap() wrapAll() wrapInner() unwrap()第5张

可以使用parent()查看父级元素

<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript">
	$('button:first').click(function(){
		$('a').wrap('<li>')
		var res = $('a').wrap($('p')).parent().parent()
		console.log(res)
	})
</script>

执行,点击wrap()

16-5如何包裹元素及删除父元素: parent() wrap() wrapAll() wrapInner() unwrap()第6张


/**
* 1.wrapInner(content):
* 功能:包裹每一个节点的内容
* 参数:内容或元素
*/
给a标签里面的内容包裹一个h1标签

<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript">
	$('button').eq(1).click(function(){
		$('a').wrapInner('<h1>')
	})
</script>

执行,点击wrapInner()

16-5如何包裹元素及删除父元素: parent() wrap() wrapAll() wrapInner() unwrap()第7张

用法二.用已存在的标签来包裹目标节点内容

用已经存在的p标签【<p>网上购物:</p>】来包裹a标签的内容

<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript">
	$('button').eq(1).click(function(){
		$('a').wrapInner($('p'))
	})
</script>

执行:

16-5如何包裹元素及删除父元素: parent() wrap() wrapAll() wrapInner() unwrap()第8张


/**
* 1.wrapAll(content):
* 功能:包裹一组节点
* 参数:内容或元素
*/
用ul包裹每一个li,且ul背景色为小麦色

<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript">
	$('button').eq(2).click(function(){
		$('a').wrap('<li>')
		$('li').wrapAll('<ul style="background-color:wheat;">')
	})
</script>

执行,点击wrapAll()

16-5如何包裹元素及删除父元素: parent() wrap() wrapAll() wrapInner() unwrap()第9张

用法二.用已存在的标签来包裹目标节点内容,给<li>再套一个<div>

<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript">
	$('button').eq(2).click(function(){
		$('a').wrap('<li>')
		$('li').wrapAll('<ul style="background-color:wheat;">')
		$('li').wrapAll($('<div style="background-color: cyan">'))
	})
</script>

执行:

16-5如何包裹元素及删除父元素: parent() wrap() wrapAll() wrapInner() unwrap()第10张


/**
* 1.unwrap(content):
* 功能:删除节点上父元素
* 参数:无
*/

<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript">
	$('button').eq(2).click(function(){
		$('a').wrap('<li>')
		$('li').wrapAll('<ul style="background-color:wheat;">')
		$('li').wrapAll($('<div style="background-color: cyan">'))
	})
	
	$('button').eq(3).click(function(){
		$('li').unwrap().unwrap()
	})
	
</script>

执行,先点击wrapAll(),让li包裹上div和ul

16-5如何包裹元素及删除父元素: parent() wrap() wrapAll() wrapInner() unwrap()第11张

再点击unwrap()去除包裹li的父元素div和ul

16-5如何包裹元素及删除父元素: parent() wrap() wrapAll() wrapInner() unwrap()第12张


俄鸿谅惩恼五放湿窍吴隆翻钝