ホームページ >ウェブフロントエンド >jsチュートリアル >jQuery.wrapInner()関数の使い方の詳しい説明
wrapInner() 関数は、一致する各要素のすべての子ノードの外側で指定された HTML 構造をラップするために使用されます。
ここでのすべてのサブノードには、テキスト ノード、コメント ノード、その他のタイプのノードが含まれます。
この関数はjQueryオブジェクト(インスタンス)に属します。
構文
この関数はjQuery 1.2で追加されました。
jQueryObject.wrapInner(wrapper)
Parameters
パラメータの説明
wrapper 一致する要素をラップするために使用される文字列/要素/jQuery/関数型のノード。
パラメータラッパーがstringの場合、jQueryセレクターまたはhtml文字列とみなされ、jQueryが自ら判断します。
jQuery 1.4 の新しいサポート: パラメーター ラッパーを関数にすることができます。 WrapInner() は、一致するすべての要素に基づいてこの関数をトラバースして実行します。関数内の this は、対応する DOM 要素を指します。
wrapInner() は、一致する要素内の現在の要素の index であるパラメーターも関数に渡します。 関数の戻り値は、ラッピングに使用されるノードのコンテンツです(HTML文字列、セレクター、DOM要素、またはjQueryオブジェクトの可能性があります)。
注: ラッパーが複数の要素に一致する場合、最初の要素のみがラッピング要素として使用されます。
注: ラッパーが複数レベルのネストされた要素 (「e388a4556c0f65e1904146cc1a846bee5a8028ccc7a7e27417bff9f05adf593272ac96585ae54b6ae11f849d2649d9e694b3e26ee717c64999d7867364b1b4a3」など) の場合、wrapInner() は、外側から内側へ。最初のノード。ノードに子ノードがない場合、または最初の子ノードが要素ノード (テキスト ノード、コメント ノードなど) ではない場合は、内側への検索を停止し、現在一致する要素を内側の終了位置に直接追加 (append()) します。現在のノード。
戻り値
wrapInner() 関数の戻り値は jQuery 型で、現在の jQuery オブジェクト自体を返します (チェーン スタイルのプログラミングを容易にするため)。
注: ラッパー要素が現在のページ内の要素であっても、要素は元の位置から消えることはありません。なぜなら、wrapInner() は要素のコピー (クローン) を使用してラッパーとして機能するからです。
例と説明
wrapInner() 関数は、一致する各要素のすべてのコンテンツの外側で指定された要素をラップするために使用されます:
<p>段落文本1<span></span></p> <p>段落文本2<span></span></p> <script type="text/javascript"> $("p").wrapInner( '<em></em>' ); </script> <!--以下是jQuery代码执行后的html内容--> <p><em>段落文本1<span></span></em></p> <p><em>段落文本2<span></span></em></p>
次の HTML コード (元の HTML コード) を参照してください:
<p id="n1"> <span id="n2">foo</span> </p> <p id="n3"> <label id="n4">[label#n4]</label> <span id="n5">bar</span> </p> 接着,我们为每个<p>元素的所有子节点外部包裹<strong>元素 // 为每个p元素的所有子节点外部包裹strong元素 $("p").wrapInner( '<strong />' );
wrapperInner() will追加の空白文字を追加せずに、各 e388a4556c0f65e1904146cc1a846bee 要素の開始タグの後と終了タグの前に、ラッピング要素の開始タグと終了タグを挿入します。以下は、上記の jQuery コードを実行した後の HTML コンテンツです (形式は調整されていません):
<p id="n1"><strong> <span id="n2">foo</span> </strong></p> <p id="n3"><strong> <label id="n4">[label#n4]</label> <span id="n5">bar</span> </strong></p>
次に、元の HTML コードを例として、パラメータ ラッパーをカスタム関数に設定します。jQuery コードは次のとおりです。
// 为每个span元素的所有子节点外部包裹em元素,em元素的class属性等于span元素的文本内容 $("span").wrapInner( function(i){ return '<em class="' + $(this).text() + '"></em>'; } );
以下は、jQuery コードを実行した後の HTML コンテンツです (形式は調整されていません):
<p id="n1"> <span id="n2"><em class="foo">foo</em></span> </p> <p id="n3"> <label id="n4">[label#n4]</label> <span id="n5"><em class="bar">bar</em></span> </p>
元の HTML コードを例として、パラメーター ラッパーが配置されている jQuery コードは次のとおりです。多層ネストされた要素:
// 为每个span元素的所有子节点外部包裹em元素:<em><b><i>{span.childNodes}</i></b></em> $("span").wrapInner( '<em><b><i></i></b></em>' ); /* 如果参数为'<em><b> <i></i></b></em>',由于'<b>'的第一个子节点是空格(文本节点),因此停止向内层查找,直接在b元素内部的末尾位置插入所有的span元素:<em><b> <i></i>{span.childNodes}</b></em> */
以下は、次の HTML コンテンツの上で実行される jQuery コードです:
<p id="n1"> <span id="n2"><em><b><i>foo</i></b></em></span> </p> <p id="n3"> <label id="n4">[label#n4]</label> <span id="n5"><em><b><i>bar</i></b></em></span> </p>
以上がjQuery.wrapInner()関数の使い方の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。