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');