亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jQuery中DOM樹操作之復制元素的方法

2019-11-20 13:19:50
字體:
來源:轉載
供稿:網友

本文實例講述了jQuery中DOM樹操作之復制元素的方法。分享給大家供大家參考。具體分析如下:

復制元素

前面提到的操作包括:插人新創建的元素、將元素從文檔中的一個位置移動 到另一個位置,以及通過新元素來包裝已有的元素??墒?,有時候也會用到復制元素的操作。例如,可以復制出現在頁面頂部的導航菜單,并把副本放到頁腳上。實際上,無論何時,只要能通過復制元素增強頁面的視覺效果,都是以重用代碼來實現的好機會。畢竟,如果能夠只編寫一次代碼并讓jQuery替我們完成復制,何必要重寫兩遍同時又增加雙倍的出錯機會呢?

在復制元素時,需要使用jQuery的.clone()方法,這個方法能夠創建任何匹配的元素集合 的副本以便將來使用。與前面使用$()創建元素時一樣,在為復制的元素應用一種插人方法 之前,這些元素不會出現在文檔中。

例如,下面這行代碼將創建<div class="chapter">中第一段落的副本:

復制代碼 代碼如下:
$('div.chapter p:eq(0)').clone();

但僅創建副本還不足以改變頁面的內容。要想讓復制的內容顯示在網頁中,可以使用插人方 法將其放到 <div class=__chapter__> 前面。

復制代碼 代碼如下:
$('div.chapter p:eq(0)').clone().insertBefore('div.chapter');

這樣,同一個段落就會出現兩次??梢?,.clone()與插人方法的關系就如同復制和粘貼一樣。

連同事件一起復制

在默認情況下,.clone()方法不會復制匹配的元素或其后代元素中綁定的 事件。不過,可以為這個方法傳遞一個布爾值參數,將這個參數設置為true, 就可以連同事件一'起復制,即.clone(true)。這樣一'來,就可以避免每次復制 之后還要手工重新綁定事件的麻煩。

通過復制創建突出引用很多網站都和它們的印刷版一樣,使用了突出引用(pullquote)來強調小塊的文本并吸引讀 者的眼球。所謂突出引用,就是從正文中提取一部分文本,然后為這段文本應用特殊的圖形樣式。 通過.clone()方法可以輕而易舉地完成這種裝飾效果。首先,我們來看一看例子文本的第三段:
<p>
<span class="pull-quote">It is a Law of Nature <span class=MdropM>with us</span> that a male child shall have <strong>one more side</strong> than his father</span>, so that each generation shall rise (as a rule) one step in the scale of development and nobility. Thus the son of a Square is a Pentagon; the son of a Pentagon, a Hexagon; and so on.
</p>

我們注意到這個段落W<span class="pull-quote">X素開始,其中的類是為了復制而 準備的。當把復制的<span>*的文本粘貼到其他位置上時,還需要修改它的樣式屬性,以便它 與原來的文本區別開來。
要實現這種樣式,需要為復制的<3。3。>添加一個pulled類,并在樣式表中為這個類添加如 下樣式規則:

復制代碼 代碼如下:
.pulled {
position: absolute; width: 120px; top: -20px; right: -180px; padding: 20px;
font: italic 1.2em "Times New Roman", Times, serif; background: #e5e5e5; border: 1px solid #999; border-radius: 8px;
box-shadow: 1px 1px 8px rgba(0, 0, 0, 0.6);
}

這樣,就為pull-quote添加了淺灰色的背景、一些內邊距和不同的字體。更重要的是將它 絕對定位到了在DOM中(絕對或相對)定位的最近祖先元素的上方20px、右側20px。如果祖先 兀素中沒有應用定位(除了static)的兀素,那么pull-quote就會相對于文檔中的<body>兀素 定位。為此,需要在jQuery代碼中確保復制的pull-quote的父兀素應用了 position:relative 樣式。

計算CSS位置

雖然pull-quote盒子的上沿位置比較直觀,但說到它的左邊位于其定位的 父元素右側20像素時,恐怕就沒有那么好理解了。要得到這個數字,需要先計算 pull-quote盒子的總寬度,即width屬性的值加上左右內邊距,或者說145px + 5px + 10px,結果是160px。當為pull-quote設置right屬性時,值為0會使 pull-quote的右邊與其父元素的右邊對齊。因此,要使它的左邊位于父元素右 側20px,需要在相反的方向上將它移動比其總寬度多20px的距離,即-180px。

現在我們再回到jQuery代碼中,看看怎么應用樣式。首先,從匹配所有<span class= "pull-quote">元素的選擇符表達式開始,然后為選擇的元素應用position:relative樣式, 參見如下代碼:

復制代碼 代碼如下:
$(document).ready(function() {
$('span.pull-quote').each(function(index) { var $parentParagraph = $(this).parent('p'); $parentParagraph.css('position', 'relative');
});
});

這里,我們同樣把需要多次用到的選擇符表達式保存在變量$parentParagraph中,以提升性能和可讀性。

接下來就是創建突出引用本身,以便利用準備好的CSS樣式。此時,我們先復制每個<span> 元素,然后為得到的副本添加pulled類,最后再把這個副本插人到其父段落的開始處,參見如下代碼:

復制代碼 代碼如下:
$(document).ready(function() {
$('span.pull-quote').each(function(index) { var $parentParagraph = $(this).parent('p'); $parentParagraph.css('position', 'relative'); var $clonedCopy = $(this).clone();
$clonedCopy
.addClass('pulled')
.prependTo($parentParagraph);
});
});

這里,我們又定義了一個新變量$clonedCopy,以便后面使用。
因為前面已經為這個復制的元素設置了絕對的定位,因此它在段落中的位置是無所謂的。根據CSS規則中的設置,只要它處于這個段落的內部,它就會相對于段落的上邊和右邊進行定位。 目前,段落與其中插人的突出引用的外觀如下圖所示:

希望本文所述對大家的jQuery程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人免费福利在线| 国产伦精品一区二区三区精品视频| 91在线观看免费高清完整版在线观看| 久久久久久国产精品| 亚洲欧美国产精品专区久久| 欧美精品成人在线| 国产精品99久久99久久久二8| 亚洲精品永久免费精品| 欧美剧在线观看| 美女999久久久精品视频| 欧美成人激情图片网| 国产精品久久久久91| 国产精品久久久久久久久久| 国产小视频国产精品| 久久视频在线免费观看| 狠狠做深爱婷婷久久综合一区| 成人激情电影一区二区| 欧美精品亚州精品| 91久久精品视频| 日本三级韩国三级久久| 中文字幕在线日韩| 国产伊人精品在线| 国模吧一区二区| 在线国产精品视频| 欧美怡春院一区二区三区| 亚洲第一区在线观看| 日韩专区在线观看| 国产女精品视频网站免费| 日韩av网站在线| 亚洲精品永久免费精品| 国产精品91免费在线| 亚洲综合中文字幕在线| 国产91精品久久久| 亚洲综合大片69999| 日韩高清电影免费观看完整| 57pao成人国产永久免费| 国产免费一区二区三区香蕉精| 国产成人鲁鲁免费视频a| 国产999精品久久久影片官网| 韩曰欧美视频免费观看| 永久555www成人免费| 在线不卡国产精品| 色樱桃影院亚洲精品影院| xxav国产精品美女主播| 91色精品视频在线| 久久精品国产96久久久香蕉| 久久亚洲精品一区二区| 国产精品久久久久久五月尺| 久久久久久久久久久91| 欧美一级电影久久| 亚洲bt欧美bt日本bt| 5278欧美一区二区三区| 夜夜嗨av一区二区三区四区| 国产精品99蜜臀久久不卡二区| 国外成人在线直播| 欧美激情第99页| 欧美日韩国产丝袜美女| 91久久在线视频| 亚洲第一福利网| 久久99久国产精品黄毛片入口| 欧美午夜片欧美片在线观看| 81精品国产乱码久久久久久| 亚洲人成在线一二| 国产精品电影网站| 久久免费福利视频| 久久国产精品视频| 懂色av中文一区二区三区天美| 日韩av理论片| 欧美精品www| 亚洲精品国产精品自产a区红杏吧| 青草青草久热精品视频在线观看| 45www国产精品网站| 一区二区三欧美| 国色天香2019中文字幕在线观看| 视频一区视频二区国产精品| 欧美精品亚州精品| 日韩av电影在线网| 91在线免费视频| 欧美激情精品久久久久久久变态| 亚洲欧美日韩在线一区| 永久免费精品影视网站| 国产欧美一区二区三区四区| 国产一区二区三区久久精品| 国产午夜精品麻豆| 日韩美女免费线视频| 97成人在线视频| 精品久久久久久久中文字幕| 欧美激情xxxx| 日韩有码在线电影| 欧美亚洲国产视频小说| 亚洲淫片在线视频| 成人看片人aa| 尤物yw午夜国产精品视频明星| 中文字幕欧美亚洲| 国产精品美女久久久久av超清| 亚洲加勒比久久88色综合| 亚洲aaaaaa| 在线视频一区二区| 久久久在线免费观看| 国产精品777| 国产精品h在线观看| 懂色av一区二区三区| 成人久久一区二区| 久久久国产精彩视频美女艺术照福利| 91经典在线视频| 国产成人拍精品视频午夜网站| 国产成人久久精品| 18久久久久久| 国产91精品黑色丝袜高跟鞋| 亚洲欧美日韩国产精品| 亚洲精品国产suv| 不卡av电影在线观看| 国语自产精品视频在线看| 2019av中文字幕| 国产精品美女久久久久久免费| 91老司机精品视频| 日韩亚洲在线观看| 亚洲奶大毛多的老太婆| 欧美激情一区二区三级高清视频| 精品欧美aⅴ在线网站| 日韩精品视频免费在线观看| 深夜精品寂寞黄网站在线观看| 黑人巨大精品欧美一区二区免费| 日韩欧美在线第一页| 久久久久久久久久亚洲| 欧美一区二区大胆人体摄影专业网站| 精品中文字幕视频| 国产精品美女主播| 大胆欧美人体视频| 国产精品久久久久久av下载红粉| 日韩欧美在线视频观看| 日韩在线观看你懂的| 国产精品久久国产精品99gif| www日韩中文字幕在线看| 亚洲欧美色图片| 亚洲欧美中文日韩v在线观看| 亚洲国产日韩欧美在线99| 久久综合网hezyo| 日本精品一区二区三区在线| 久久成人av网站| 日日摸夜夜添一区| 国产精品99久久久久久www| 国产激情久久久| 欧美中文字幕在线观看| 中文字幕亚洲第一| 欧美激情国内偷拍| 久久天天躁狠狠躁夜夜躁2014| 亚洲人成网站色ww在线| 亚洲免费av电影| 亚洲成av人影院在线观看| 在线观看久久久久久| 亚洲精品久久久久中文字幕欢迎你| 欧美性猛交xxxx乱大交| 日韩欧美大尺度| 色偷偷91综合久久噜噜| 亚洲成人国产精品| 精品成人在线视频| 亚洲美女av在线| 国产精品入口夜色视频大尺度| 国产日韩在线看| 青青草原成人在线视频| 日韩av手机在线看| 不卡av在线播放| 91久久国产综合久久91精品网站|