![jQuery即学即用](https://wfqqreader-1252317822.image.myqcloud.com/cover/818/680818/b_680818.jpg)
第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 执行前显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0092_0001.jpg?sign=1739517441-KnroIuy7LIQj8ryqDe6tqqTxliP2hmku-0-9f117486a2e7b89b97f80fd04d7b277b)
图6-2 执行后显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0092_0002.jpg?sign=1739517441-Txqxi5qfNFm9kfZk532xaJjJ1j04cqSf-0-69ffec8029367a277474d18133d20ceb)
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 执行前显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0093_0001.jpg?sign=1739517441-gasvpqXORXJqiQMrAkm5sNzXJaDBVnMZ-0-361f1e7f1b0873f37f3124ea4476ed83)
图6-4 执行后显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0094_0001.jpg?sign=1739517441-OSdA5tkwbItYJL28zghKc6jAKE2FWJKu-0-4532bd2e3c96858a7a62cb027e0fb59f)
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 执行前显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0095_0001.jpg?sign=1739517441-VQc0zVu234szjMpvtKj37r0d2bepPgJM-0-9504a6cf96343d0cfe7075df6429fcfb)
图6-6 执行后显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0095_0002.jpg?sign=1739517441-pQRRUqpMcbf62vois7jpDs8Hu3gGSHSy-0-20e95d3c1a66ec83a5c40ef7ac4a51ef)
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 执行前显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0096_0001.jpg?sign=1739517441-Y2u8Ld90SJdvIjd29x291f378pGcCH5J-0-affe484b1b1a31c4a7263f20f7810d83)
图6-8 执行后显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0096_0002.jpg?sign=1739517441-5CQCW1opR3OB55Bw82rcqxE2xJT6hmSE-0-5c843f6c80b10b8c501aab35758a9af8)
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 执行前显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0097_0001.jpg?sign=1739517441-LR6u9OkXdyBvoJUsWsE7r3dFkzyjmCAb-0-9e2cadce102a8f004026c331e5c42f27)
图6-10 执行后显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0098_0001.jpg?sign=1739517441-hEzDXTHrTQRCcv25srnAd2iudyqCinol-0-b39dd62bb060feb60b3c3e1a559b6a33)
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 执行前显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0099_0001.jpg?sign=1739517441-ZWVfuZIjFhZg9bPajYmFyoQxQoasAWu4-0-46b1cdb16f2987e6ddeaaf8f00e90102)
图6-12 执行后显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0099_0002.jpg?sign=1739517441-pREKw2JaS38NcIFQlmdeGDmoHu2QBV0s-0-e1b9cb4f46a6fa45d23bd49b20e4b532)
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 执行前显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0100_0001.jpg?sign=1739517441-lgkyVrBtIKNVcZnAY87vdGK8cMKTyZzJ-0-3d23b02069ce2544ba12611aa6771048)
图6-14 执行后显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0100_0002.jpg?sign=1739517441-jz1EFVdJXpttcWx2S2bMLNqzHVGIUUI4-0-72dc34b406fd6ed30e207df122a2948b)
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 执行前显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0101_0001.jpg?sign=1739517441-imSHRLGofhvttnAvDQWlvX2yOkpXpwrK-0-906a7e0bc30ba4113e3994c5ebaee54c)
图6-16 执行后显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0102_0001.jpg?sign=1739517441-X5PlVtNJFM95sjLRGwUTt0nb3X9rQlFf-0-2431c7622f42195a1930ddf9f3d57517)
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 执行前显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0103_0001.jpg?sign=1739517441-ChWOcrp75cj1lqqjjjtSC0XxdGZS72ev-0-379eed8305c2187b158725b0d9350368)
图6-18 执行后显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0103_0002.jpg?sign=1739517441-RGx2h9qITgpt7GI6IdmBLnpDjcI2TxFo-0-bdeeb5787079bdfbf28cd2df19c14175)
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 执行前显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0104_0001.jpg?sign=1739517441-OZRuCzAiaUAeVUIPWjvpYITE3zl7TkKg-0-1c9e03b96d227e84cf9d522ea1e0389a)
图6-20 执行后显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0105_0001.jpg?sign=1739517441-Xrlvdp29cTBmVTwiuBXwJGEmvKw0IJNj-0-45d5b4f172da24e4cf8ffca4d5901f75)
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 执行前显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0106_0001.jpg?sign=1739517441-t8c68dt3qtpL2HTPHSGHUFKyjkK1GkE1-0-6d130f87b39c2af74b4f11245f1b06f4)
图6-22 执行后显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0106_0002.jpg?sign=1739517441-JTngQY01oKGOLsl1pby2rj31l2cOdpWN-0-72ebbb069f82fd672db1efc54da37779)
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 执行前显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0107_0001.jpg?sign=1739517441-9hetqteYq96gyRay5mbE1i7zuj3uc7h0-0-276b505e87c47f63c580dc2fae536ad0)
图6-24 执行后显示的内容
![](https://epubservercos.yuewen.com/27581B/3590454303849301/epubprivate/OEBPS/Images/figure_0108_0001.jpg?sign=1739517441-Ln1ItfX41XMg6X1jlvBSMNICwvEqTPgk-0-8cd64e8af7596c18ace1bef0a57e4237)