.appendTo()
返回: jQuery
.appendTo( target )
描述:把匹配的元素集合中的每个元素插入到目标的末尾。
加入于: 1.0
.appendTo( target )- target一个选择器、元素、HTML字符串、元素的数组,或者jQuery对象;匹配的元素集合将插入到用参数指定的元素的末尾。
.append()
方法和.appendTo()
方法执行了同样的任务。主要区别是在句法中——具体地说,是内容和目标的位置。利用.append()
方法,方法前面的选择器或者表达式是要插入的内容的容器。相较之下,利用.appendTo()
方法,方法前面的内容,无论是选择器表达式还是快速创建的元素标签,都会被插入到目标容器中。
设想下面的HTML:
<h2>Greetings</h2> <div class="container"> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div>
我们可以创建内容并把它们一次性插入到几个元素内:
$( "<p>Test</p>" ).appendTo( ".inner" );
每个div.inner
得到这些新内容:
<h2>Greetings</h2> <div class="container"> <div class="inner"> Hello <p>Test</p> </div> <div class="inner"> Goodbye <p>Test</p> </div> </div>
我们还可以选择网页上的一个元素,并把它插入到另一个元素内部:
$( "h2" ).appendTo( $( ".container" ) );
如果以这种方式把一个元素选中并插入到DOM中另一个位置,它会被移到目标位置,而不是被克隆到目标位置,而且将返回由插入元素构成的新集合。
<div class="container"> <div class="inner">Hello</div> <div class="inner">Goodbye</div> <h2>Greetings</h2> </div>
然而,如果有超过一个目标元素,将创建插入元素的克隆副本,以用于每个目标,除了最后一个目标,而且会返回那个新集合(原来的元素加上克隆的元素)。
在jQuery 1.9以前的版本中,这种追加到单个元素的情况不会创建一个新集合,但是会返回原来的集合,这使它当用在数量不固定的元素上时,会难以可靠地使用.end()
方法。
其它说明
- 根据设计意图,任何可以接受一个HTML字符串的jQuery构造器或方法——
jQuery()
、.append()
、.after()
等等——都可以潜在地执行代码。这可能发生脚本标签注入,或者使用HTML元素属性执行代码(例如,<img onload="">
)。千万不要用这些方法来插入从不可信任的来源获得的字符串,比如说URL查询参数、cookies,或者表单输入。这样做会导致跨站脚本缺陷(XSS)。在往document添加内容之前要删除或转义一切的用户输入。
示例
把所有的span追加到带有ID为“foo”的元素内(查看append()
的文档以获得更多的示例)。
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>appendTo demo</title> <style> #foo { background: yellow; } </style> <script src="https://code.jquery.com/jquery-1.10.2.js"></script> </head> <body> <span>I have nothing more to say... </span> <div id="foo">FOO! </div> <script> $( "span" ).appendTo( "#foo" ); </script> </body> </html>
演示结果