.wrapInner()

Định nghĩa và sử dụng

  • .wrapInner(): Bao ngoài nội dung của thành phần được chọn bởi một cấu trúc HTML.

Cấu trúc

  • Đã được thêm vào từ phiên bản 1.0

.wrapInner(Cấu trúc HTLM)

$('.test').wrapInner(<div></div>);

.wrapInner(Bộ chọn)

$('.test').wrapInner($('.testInner'));
  • Đã được thêm vào từ phiên bản 1.4

.wrapInner(function(index){})

$('.test').wrapInner(function(){});

.wrapInner(Thành phần bao ngoài)

Html viết:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Tiêu đề</title>
<script src="https://code.jquery.com/jquery-latest.js"></script>
<style>
div {
    padding: 5px;
    border: 1px solid red;
}
.test { }
.inner { border: 1px solid blue;}
</style>
<script>
$(function(){
    $('div').wrapInner('<div class="inner"></div>');
});
</script>
</head>

<body>
<div>Thành phần div</div>
<div>Thành phần div</div>
<div>Thành phần div</div>
</body>
</html>

Hiển thị trình duyệt:

Ta thấy nội dung của mỗi thành phần div đã được bao ngoài bởi thành phần div có class="inner".

So sánh code HTML trước và sau khi có jQuery:

Trước khi có jQuery Sau khi có jQuery

<div>Thành phần div</div>
<div>Thành phần div</div>
<div>Thành phần div</div>

<div>
<div class="inner">Thành phần div</div>
</div>
<div>
<div class="inner">Thành phần div</div>
</div>
<div>
<div class="inner">Thành phần div</div>
</div>

Ví dụ thêm

Html viết:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Tiêu đề</title>
<script src="https://code.jquery.com/jquery-latest.js"></script>
<style>
div { border: 1px solid green; padding: 5px;}
div.inner { border: 1px solid red;}
p { border: 1px solid blue;}
strong { border: 1px solid yellow;}
</style>
<script>
$(function(){
    $('div').wrapInner('<div class="inner"><p><strong></strong></p></div>');
});
</script>
</head>

<body>
<div>Thành phần div</div>
<p>Thành phần p</p>
<div>Thành phần div</div>
</body>
</html>

Hiển thị trình duyệt:

Ta thấy nội dung của mỗi thành phần div đã được bao ngoài bởi một nhóm thành phần khác.

So sánh code HTML trước và sau khi có jQuery:

Trước khi có jQuery Sau khi có jQuery

<div>Thành phần div</div>
<p>Thành phần p</p>
<span>Thành phần p</span>

<div><div class="inner"><p><strong>Thành phần span</strong></p></div></div>
<p>Thành phần p</p>
<div><div class="inner"><p><strong>Thành phần span</strong></p></div></div>/p>

wrapInner(Bộ chọn)

Html viết:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Tiêu đề</title>
<script src="https://code.jquery.com/jquery-latest.js"></script>
<style>
div { padding: 2px; }
div { border: 1px solid red; }
.test { border: 1px solid blue; }
.test span { border: 1px solid yellow; }
</style>
<script>
$(function(){
    $('div').wrapInner($('.test'));
});
</script>
</head>

<body>
<div>Thành phần div</div>
<div>Thành phần div</div>
<div>Thành phần div</div>
<p class="test"><span></span></p>
</body>
</html>

Hiển thị trình duyệt:

Ta thấy nội dung của mỗi thành phần div đã được bao ngoài bởi thành phần </span></p>Thành phần div</span></p>, chú ý là cách dùng này chỉ hiệu quả khi đoạn wrapInner được viết liên tục.

So sánh code HTML trước và sau khi có jQuery:

Trước khi có jQuery Sau khi có jQuery

<div>Thành phần div</div>
<div>Thành phần div</div>
<div>Thành phần div</div>
<p class="test"><span></span></p>

<div><p class="test"><span>Thành phần div</span></p></div>
<div><p class="test"><span>Thành phần div</span></p></div>
<div><p class="test"><span>Thành phần div</span></p></div>
<p class="test"><span></span></p>

.wrapInner(function(index){})

Html viết:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Tiêu đề</title>
<script src="https://code.jquery.com/jquery-latest.js"></script>
<style>
div { border: 1px solid red;}
p { border: 1px solid blue;}
</style>
<script>
$(function(){
    $("button").click(function(){
        $("div").wrapInner(function(){
            return "<p></p>"
        });
    });
});
</script>
</head>

<body>
<div>Thành phần p</div>
<button>Click để wrapInner nội dung của thành phần div</button>
</body>
</html>

Hiển thị trình duyệt:

Mỗi lần click vào button thì thành phần <p> sẽ được bao ngoài thêm thành phần <div>.

So sánh code HTML trước và sau khi có jQuery:

Trước khi có jQuery Sau khi có jQuery

<p>Thành phần p</p> <button>Click để wrapInner thành phần p</button>

<div><p>Thành phần p</p></div>
<button>Click để wrapInner thành phần p</button>