wrap()函數用於在每個符合元素外部包裹指定的HTML結構。
與該函數相對的是unwrap()函數,用於當前匹配元素的父元素(只移除父元素,其內部節點全部保留)。
該函數屬於jQuery物件(實例)。
語法
jQueryObject.wrap( wrapper )
參數
##參數 描述wrapperString/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( '<div></div>' ); </script> <!--以下是jQuery代码执行后的html内容--> <div><p>段落文本1<span></span></p></div> <div><p>段落文本2<span></span></p></div>
<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>
// 在n2元素外包裹strong元素:<strong>{#n2}</strong> $("#n2").wrap('<strong/>');// 在n4元素外包裹form元素:<form name="myForm">{#n4}</form> $("#n4").wrap('<form name="myForm"></form>'); // 在每个p元素外包裹div元素:<div data_id="index">{p}</div> $("p").wrap( function(index){ return '<div data_id="' + index + '"></div>'; } ); // 在n5元素外包裹嵌套的div元素:<div><p><em><b>{#n5}</b></em></p></div> $("#n5").wrap( '<div><p><em><b></b></em></p></div>' ); // 在n6元素外包裹嵌套的div元素:<div><p> <em><b></b></em>${#n5}</p></div> // wrap()会从外层div依次往内部查找,以确定n5元素的所在位置 // wrap()将从外往内检查每层嵌套的第一个元素,如果该元素没有子元素或者第一个子元素不是Element节点,就停止向内查找 // 由于参数的'<p>'后面有空格(文本节点),也就是说p元素的第一个子元素不是Element类型,因此直接将n6插入到p元素内部的末尾位置 $("#n6").wrap( '<div><p> <em><b></b></em></p></div>' ); 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中文網其他相關文章!