第6章 元素控制
jQuery中提供了多种简单追加或删除HTML元素的方法,利用这些方法可以根据需要改变网页的内容等,这种不用重新刷新网页即可实现更新的方法是在Ajax技术中不可缺少的功能。
6.1 在元素内部追加内容
在元素的内部追加新的字符串可以使用append方法。
6.1.1 语法
append(content)
content可以是字符串或HTML代码,但是必须用双引号或单引号括起;另外在div标签中追加p标签,可以用如下语句:
$(div).append('<p>追加p标签</p>');
6.1.2 应用实例
部分HTML代码
<div id="content"> <p>div标签内部追加新的内容。</p> </div>
JavaScript代码
$(function(){ $("#content").append("追加的新文字串。"); });
JavaScript执行前后显示的内容分别如图6-1和图6-2所示。
图6-1 执行前显示的内容
图6-2 执行后显示的内容
6.2 在元素中的不同位置追加内容
在元素中追加内容使用appendTo方法。
6.2.1 语法
appendTo(content)
content为文档中的已有元素,如果是“$(A).append(B)”形式,则在A元素的最后追加B;如果是“$(A).appendTo(B)”形式,则将A追加到B的最后。
6.2.2 应用实例
部分HTML代码
<div id="content"> <span>在span标签的下方追加p标签</span> </div> <p>追加到div标签的下方。</p>
JavaScript代码
$(function(){ $("p").appendTo("#content"); });
JavaScript执行前后显示的内容分别如图6-3和图6-4所示。
图6-3 执行前显示的内容
图6-4 执行后显示的内容
6.3 在元素的开始位置追加内容
prepend方法可以在元素的开始位置追加内容。
6.3.1 语法
prepend(content)
content可以是字符串或HTML代码,但是必须用双引号或单引号括起;另外在div标签的头部追加p标签,可用如下语句:
$(div). prepend ('<p>追加p标签</p>');
6.3.2 应用实例
部分HTML代码
<p>在此标签的头部追加内容。</p> <p>同样也在此标签的头部追加内容。</p>
JavaScript代码
$(function(){ $("p").prepend("<span>追加的新字符串。</span><br/>"); });
JavaScript执行前后显示的内容分别如图6-5和图6-6所示。
图6-5 执行前显示的内容
图6-6 执行后显示的内容
6.4 在不同元素的开始位置追加内容
prependTo方法可以在元素的开始位置追加内容。
6.4.1 语法
prependTo(content)
content为文档中的已有元素。对该方法来说,如果是“$(A). prepend (B)”形式,则在A元素的开始位置追加B;如果是“$(A).appendTo(B)”形式,则将A追加到B的开始位置。
6.4.2 应用实例
部分HTML代码
<div id="content"> <span>在span标签的上方追加p标签</span> </div> <p>追加到div标签的起始位置。</p>
JavaScript代码
$(function(){ $("p").prependTo("#content"); });
JavaScript执行前后显示的内容分别如图6-7和图6-8所示。
图6-7 执行前显示的内容
图6-8 执行后显示的内容
6.5 在元素后追加兄弟元素
将指定内容作为兄弟元素追加到元素使用after方法。
6.5.1 语法
after(content)
content为字符串或HTML代码字符串。append方法将字符串作为元素的子元素来追加到元素尾,而after方法是将字符串作为兄弟元素追加到元素尾。如果指定多个元素,则每一个元素尾都会追加相同的字符串。下面是在p标签的最后追加字符串的例子:
$('p').after('<span>追加的新字符串</span>');
6.5.2 应用实例
部分HTML代码
<p>在此标签的后面追加内容。</p> <p>同样也在此标签的后面追加内容。</p>
JavaScript代码
$(function(){ $("p").after("<span>追加的新字符串。</span>"); });
JavaScript执行前后显示的内容分别如图6-9和图6-10所示。
图6-9 执行前显示的内容
图6-10 执行后显示的内容
6.6 在元素前追加兄弟元素
在元素的前面追加兄弟元素时使用before方法。
6.6.1 语法
before(content)
content为单纯的字符串或html代码字符串。prepend方法将字符串作为元素的子元素来追加到开始位置,而before方法是将字符串作为兄弟元素追加到元素的前面。如果指定多个元素,则每一个元素的前面都会追加相同的字符串。下面是在p标签的前面追加字符串的例子:
$('p'). before ('<span>追加的新字符串</span>');
6.6.2 应用实例
部分HTML代码
<p>在此标签的前面追加内容。</p> <p>同样也在此标签的前面追加内容。</p>
JavaScript代码
$(function(){ $("p").before("<span>追加的新字符串。</span>"); });
JavaScript执行前后显示的内容分别如图6-11和图6-12所示。
图6-11 执行前显示的内容
图6-12 执行后显示的内容
6.7 用指定结构的元素包含元素
用指定结构的元素包含元素使用wrap方法。
6.7.1 语法
wrap(html)
在HTML中指定HTML元素,但指定的元素中不可含有兄弟元素;否则不能正确地运行,并且不可含有一般文本字符串。下面的代码用div标签包含p标签:
$('p').warp('<div></div>');
6.7.2 应用实例
部分HTML代码
<span>将span标签包含进div标签中。</span><br/> <span>同样将此span标签包含进div标签中。</span>
JavaScript代码
$(function(){ $("span").wrap("<div><p></p></div>"); });
JavaScript执行前后显示的内容分别如图6-13和图6-14所示。
图6-13 执行前显示的内容
图6-14 执行后显示的内容
6.8 用指定结构的元素包含多个元素的集合
wrapALL方法用指定结构的元素包含多个元素。
6.8.1 语法
wrapAll(html)
同wrap方法,在HTML中指定html元素。将所有对象标签都移动到第1对象标签的位置下,并用指定的结构包括。例如,将多个span标签用div标签包含的代码如下:
$('span').wrapALl('<div></div>');
6.8.2 应用实例
部分HTML代码
… div { width:280px; border: 1px solid #000; margin: 0; padding: 0; } … </head> … <p>在此标签的包含到div标签中。</p> <p>同样也将此标签的包含进同一个div标签。</p>
JavaScript代码
$(function(){ $("p").wrapAll("<div></div>"); });
JavaScript执行前后显示的内容分别如图6-15和图6-16所示。
图6-15 执行前显示的内容
图6-16 执行后显示的内容
6.9 用指定标签包含子元素
使用wrapInner方法可以用指定的标签包含子元素。
6.9.1 语法
wrapInner (html)
与wrap方法一样,在HTML中指定html元素。例如,用b标签包含p标签中文字的代码如下:
$('p').wrapInner('<b></b>');
6.9.2 应用实例
部分HTML代码
<p>将p标签的文字用b标签包含起来。</p> <p>也将此标签的文字用b标签包含起来。</p>
JavaScript代码
$(function(){ $("p").wrapInner("<b></b>"); });
JavaScript执行前后显示的内容分别如图6-17和图6-18所示。
图6-17 执行前显示的内容
图6-18 执行后显示的内容
6.10 替换元素
使用replacWith与replaceAll方法替换指定的元素。
6.10.1 语法
replacWith(content) replaceAll(selector)
使用replacWith方法,“$(A).replaceWith(B)”用B元素替换A元素;使用replaceAll方法,“$(A).replaceAll(B)”将B元素替换成A元素。
6.10.1 应用实例
部分HTML代码
<p id="replaceWith">准备替换,使用replaceWith方法。</p> <p id="replaceAll">准备替换,使用replaceAll方法。</p>
JavaScript代码
$(function(){ $("#replaceWith").replaceWith("<div>已经替换,使用replaceWith方 法。</div>"); $("<div>已经替换,使用replaceAll方法。</div>"). replaceAll("#replaceAll"); });
JavaScript执行前后显示的内容分别如图6-19和图6-20所示。
图6-19 执行前显示的内容
图6-20 执行后显示的内容
6.11 删除元素
jQuery提供了两种删除元素的方法,使用empty方法删除元素的子元素;使用remove方法删除元素。
6.11.1 语法
empty() remove([expr])
empty方法删除指定元素的子元素,remove方法删除元素;另外,还可以在指定的元素中设定细化条件执行删除处理。下面分别是删除div标签的子元素及删除div标签的代码。
6.11.2 应用实例
部分HTML代码
<p id="emptyTest">此标签的使用empty方法进行删除。</p> <p >以下的标签被删除。</p> <p class="emptyTest">准备使用remove方法删除。</p> <p class="emptyTest">准备使用remove方法删除。</p>
JavaScript代码
$(function(){ $("#emptyTest").empty(); $("p").remove(".emptyTest"); });
JavaScript执行前后显示的内容分别如图6-21和图6-22所示。
图6-21 执行前显示的内容
图6-22 执行后显示的内容
6.12 复制元素
使用clone方法可以复制元素。
6.12.1 语法
clone() clone(true)
在jQuery中分别管理DOM与事件属性,如果需要复制设定的事件,则必须在参数中指定true;另外clone方法只完成复制,插入到指定位置必须使用appendTo或者prependTo等方法。
6.12.2 应用实例
部分HTML代码
<p id="cloneTest">复制对象标签。</p> <div class="cloneTest"> <p>p标签将复制到本标签的前面。</p> </div>
JavaScript代码
$(function(){ $("#cloneTest").clone().prependTo(".cloneTest"); });
JavaScript执行前后显示的内容分别如图6-23和图6-24所示。
图6-23 执行前显示的内容
图6-24 执行后显示的内容