首頁 > web前端 > js教程 > 主體

jQuery.wrap() 函數詳解

巴扎黑
發布: 2017-06-24 13:33:35
原創
2029 人瀏覽過

wrap()函數用於在每個符合元素外部包裹指定的HTML結構。

與該函數相對的是unwrap()函數,用於當前匹配元素的父元素(只移除父元素,其內部節點全部保留)。

該函數屬於jQuery物件(實例)。

語法

jQueryObject.wrap( wrapper )

參數

##參數 描述

wrapper

String/Element/jQuery/Function類型用於包裹匹配元素的節點。

如果參數wrapper為

字串,則將其視為jQuery選擇器或html字串,jQuery會自行判斷。

jQuery 1.4 新增支援:參數wrapper可以為函數。 wrap()將根據匹配的所有元素遍歷執行該函數,函數中的this將指向對應的DOM元素。

wrap()也會為函數傳入一個參數,也就是目前元素在符合元素中的索引。

函數的回傳值就是用於包裹的節點內容(可以是html字串、DOM元素或jQuery物件)。

注意:如果wrapper符合多個元素,則只將第一個元素作為包裹元素。

注意:如果wrapper是多層嵌套的元素(例如

),wrap()將從外往內檢查每層巢狀的第一個節點。如果該節點沒有子節點或第一個子節點不是Element節點(例如文字節點、註解節點等),就停止向內查找,直接在目前節點內部的末尾位置追加(append())目前符合元素。

傳回值

wrap()函數的傳回值為jQuery類型,傳回目前jQuery物件本身(以便於進行鍊式風格的程式設計)。

注意:即使wrapper元素是目前頁面中的元素,該元素也不會從原位置上消失。因為wrap()使用的是該元素的副本(克隆)來充當包裹。

範例&說明

wrap()函數用於在每個符合元素之前的位置插入內容:

<p>段落文本1<span></span></p>
<p>段落文本2<span></span></p>
<script type="text/javascript">
$("p").wrap( &#39;<div></div>&#39; ); 
</script>
<!--以下是jQuery代码执行后的html内容-->
<div><p>段落文本1<span></span></p></div>
<div><p>段落文本2<span></span></p></div>
登入後複製

以下面這段HTML程式碼為例:

<p id="n1">
    <span id="n2">span#n2</span>    
</p>
<p id="n3">
    <input id="n4" type="text" />
</p>
<span id="n5">多层嵌套1</span>
<span id="n6">多层嵌套2</span>
登入後複製

以下jQuery範例程式碼用於示範wrap()函數的具體用法:

// 在n2元素外包裹strong元素:<strong>{#n2}</strong>
$("#n2").wrap(&#39;<strong/>&#39;);// 在n4元素外包裹form元素:<form name="myForm">{#n4}</form>
$("#n4").wrap(&#39;<form name="myForm"></form>&#39;);
// 在每个p元素外包裹div元素:<div data_id="index">{p}</div>
$("p").wrap( function(index){
    return &#39;<div data_id="&#39; + index + &#39;"></div>&#39;;   
} );
// 在n5元素外包裹嵌套的div元素:<div><p><em><b>{#n5}</b></em></p></div>
$("#n5").wrap( &#39;<div><p><em><b></b></em></p></div>&#39; );
// 在n6元素外包裹嵌套的div元素:<div><p> <em><b></b></em>${#n5}</p></div>
// wrap()会从外层div依次往内部查找,以确定n5元素的所在位置
// wrap()将从外往内检查每层嵌套的第一个元素,如果该元素没有子元素或者第一个子元素不是Element节点,就停止向内查找
// 由于参数的&#39;<p>&#39;后面有空格(文本节点),也就是说p元素的第一个子元素不是Element类型,因此直接将n6插入到p元素内部的末尾位置
$("#n6").wrap( &#39;<div><p> <em><b></b></em></p></div>&#39; );
wrap()会将包裹元素的开始标记和结束标记分别置于匹配元素的两侧,不会额外添加任何空白字符,上述代码执行后的完整html代码如下(格式未作任何调整):
<div data_id="0"><p id="n1">
    <strong><span id="n2">span#n2</span></strong>    
</p></div>
<div data_id="1"><p id="n3">
    <form name="myForm"><input id="n4" type="text"></form>
</p></div>
<div><p><em><b><span id="n5">多层嵌套1</span></b></em></p></div>
<div><p> <em><b></b></em><span id="n6">多层嵌套2</span></p></div>
登入後複製

以上是jQuery.wrap() 函數詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板