我们知道通过 $() 函数可以访问文档中的元素,并返回一个 jQuery 对象,并且通过一系列方法,我们可以修改元素的样式和内容,实际上,我们还可以通过该函数做更多的事情,例如添加、删除、复制等操作来改变 DOM 树的结构。
创建元素
我们可以通过 $() 函数来直接创建元素,例如
$('<span>new</span>');
但仅仅创建了元素,还没有插入到页面中来,接下来介绍插入方法。
插入元素
最基本的四种插入方法如下:
1.insertBefore 指定元素外部,前面
2.insertAfter 指定元素外部,后面
3.prependTo 指定元素内部,前面
4.appendTo 指定元素内部,后面
假设现有元素为一个 div,如下:
<div>origin</div>
将上例中的 span 插入到 div 内部的前面,可以这样操作:
$('<span>new</span>').prependTo('div');
结果为:
<div><span>new</span>origin</div>
反向插入元素
我们也可以反向插入元素,对应的方法为:
1.insertBefore - before
2.insertAfter - after
3.prependTo - prepend
4.appendTo - append
对于上例,使用反向插入元素的方法为:
$('div').prepend('<span>new</span>');
结果是一致的。
移动元素
对于已经存在的元素使用上述的四类方法,则起到移动元素的效果,假设 span 元素已经存在在 div 内部如下:
<div><span>new</span>origin</div>
我们尝试将 span 移至 div 外部的后面,如下:
$('span').insertAfter('div');
移动后的效果为:
包裹元素
包裹元素即给元素添加一个外层元素,假设现在有两个 span 如下:
<span>A</span>
<span>B</span>
我们希望给每个 span 都包裹一个 li,从而实现列表化,此时我们可以使用 wrap 方法:
$('span').wrap('<li></li>');
结果为:
如果我们希望用一个 ul 包裹所有 span 元素,那么可以使用 wrapAll 方法:
$('span').wrapAll('<ul></ul>').wrap('<li></li>');
克隆元素
克隆元素的方法为 clone,使用起来很简单,但是这里有一点需要注意,克隆元素时,绑定在该元素极其后代元素的事件是否也会被克隆呢,默认情况下是不会的,但是我们可以将其设置为同时克隆。举例如下:
<span>clone</span>
<div></div>
绑定点击事件给 span:
$('span').click(function() {
alert('hello');//
});
克隆 span 并插入到 div 内部:
$('span').clone().appendTo('div');
但此时点击新建的 span 并不能触发 alert,因为 clone 方法默认未将绑定的事件克隆,为了达到事件克隆的效果,只需要将参数设置为 true 即可。
$('span').clone(true).appendTo('div');
此时,点击新建的 span 将会触发 alert。
获取、设置元素内容
假设有 div 如下:
<div><span>content</span></div>
我们希望获取 div 元素的内容,可以使用 html 方法。
$('div').html()
返回结果为:"<span>content</span>"。
我们也可以使用 text 方法:
$('div').text()
返回结果为:"content"。
所以很明显,html 方法和 text 方法的区别在于 text 方法只获取纯文本内容,所以 HTML 标签都将被忽略。
设置元素内容的方法则使用上述两种方法,将新内容作为参数传递即可,例如修改上例中的文本内容:
$('div').text('new content')
html 方法同理。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。