jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍

insertBefore():a.insertBefore(b)

 a在前,b在后,

 a:是一个选择器,b:也是一个选择器

<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8'>
<title>jqu</title>
<script type="text/javascript" src='jquery-2.2.0.min.js'></script>
</head>
<body>
<p class='p1'>p1:hello</p>
hello world
<p class='p2'>p2:wenwen</p>
hello wo
</body>
<script type="text/javascript">
$(function(){
$('.p2').insertBefore('.p1');
})
</script>
</html>

得到:

p2:wenwen
p1:hello
hello world hello wo

insertAfter():跟insertBefore()是一样的道理

a.insertAfter(b)

a在后,b在前

现在是说before()

before():a.before()

 a是页面上已有的选择器,b是你需要添加的内容,注意:是什么就是什么,会识别标签,b不是一个选择器

 a在后,b在前

<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8'>
<title>jqu</title>
<script type="text/javascript" src='jquery-2.2.0.min.js'></script>
</head>
<body>
<p class='p1'>p1:hello</p>
<p class='p2'>p2:wenwen</p>
</body>
<script type="text/javascript">
$(function(){
$('.p2').before('.p1');
})
</script>
</html>

最后得到:

p1:hello
.p1
p2:wenwen

看到吗?.p1并不识别选择器,直接就是字符串,在.p2选择器的前面位置

after():跟before()是同理的,只是一个在前一个在后

我只是想说insertBefore(),insertAfter()跟before(),after()的区别,我感觉最大一个区别就是看你要用到的场景,你要是需要两个选择器的位置调换就用

insertBefore(),insertAfter()

要是需要一个选择器跟一个文本进行调换位置就可以用before(),after();当然这个不只是调换位置啦

调换位置是说页面上已经存在的东西,这个方法里面也可以加页面上没有的东西,比如:

$('<p class='p3'>嘿嘿</p>').insertBefore('.p1');

相关推荐