.wrap()
マッチした各要素を、指定した別エレメントでそれぞれ囲います。
- .wrap( wrappingElement ) 1.0追加
- .wrap( function(index) ) 1.4追加
- サンプル
- デモ
.wrap( wrappingElement ) 1.0追加
戻り値:jQuery
引数 | 説明 |
---|---|
wrappingElement | マッチしている要素を囲う要素を指定します。 HTML文字列、セレクタ、jQueryオブジェクト、DOM要素のいずれかが使用できます。 |
.wrap( function(index) ) 1.4追加
戻り値:jQuery
引数 | 説明 |
---|---|
function(index) |
マッチしている要素を囲う要素を戻り値として返す関数を指定します。
|
サンプル
次のようなコードがあった場合、
<div class="container">
<div class="inner">こんにちは</div>
<div class="inner">さようなら</div>
</div>
下記の処理を実行すると、
$('.inner').wrap('<div class="new" />');
マッチした要素それぞれが指定したDIVで囲まれます。
<div class="container">
<div class="new">
<div class="inner">こんにちは</div>
</div>
<div class="new">
<div class="inner">さようなら</div>
</div>
</div>
下記のように引数に関数を指定した場合、
$('.inner').wrap(function(index) {
return '<div title="' + $(this).text() + '" />';
});
マッチした要素の各テキストを取り出して、動的に使用することが出来ます。
<div class="container">
<div title="こんにちは">
<div class="inner">こんにちは</div>
</div>
<div title="さようなら">
<div class="inner">さようなら</div>
</div>
</div>
デモ
P要素に対してDIV要素をwrapしています。
<!DOCTYPE html>
<html>
<head>
<style>
div { border: 2px solid blue; }
p { background:yellow; margin:4px; }
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<p>おはよう!</p>
<p>こんにちは!</p>
<p>こんばんは!</p>
<script>$("p").wrap("<div></div>");</script>
</body>
</html>
各SPAN要素に対して、階層になっている要素をwrapの引数に指定して実行しています。
<!DOCTYPE html>
<html>
<head>
<style>
body {font-size:14px;}
div { border:2px blue solid; margin:2px; padding:2px; }
p { background:yellow; margin:2px; padding:2px; }
strong { color:red; }
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<span>SPAN要素</span>
<strong>STRONG要素</strong>
<span>SPAN要素</span>
<script>$("span").wrap("<div><div><p><em><b></b></em></p></div></div>");</script>
</body>
</html>
wrapの引数に存在している要素をセレクタで指定しています。 セレクタで指定された要素が移動することなく、コピーされていることに注目してください。
<!DOCTYPE html>
<html>
<head>
<style>
body {font-size:12px;}
div { border: 1px solid blue; margin:1px; padding:1px; }
.doublediv { border-color:red; }
p { background:yellow; margin:2px; font-size:12px; }
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<p>おはよう!</p>
<p>こんにちは!</p>
<p>こんばんは!</p>
<div class="doublediv"><div></div></div>
<script>$("p").wrap($(".doublediv"));</script>
</body>
</html>
© 2010 - 2017 STUDIO KINGDOM