Thêm thành phần với .before()

Trở về

  • 1 010

Đôi khi muốn thêm một thành phần vào trước thành phần đã có, có khi cần nhiều cách xử lý chuỗi, hay kết hợp nhều thành phần khác nhau, ở jQuery có cung cấp cho chúng ta cách tiếp cần dễ hơn với .before().

.before()

  • Thêm một thành phần mới vào ngay trước thành phần có sẵn bằng function .before().
  • Tham khảo thêm .before()

Html viết:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Học Web Chuẩn</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(function(){
    $('div').before('<p>Nội dung thêm vào</p>');
});
</script>
<style>
* { /* reset lại margin và padding cho các tag */
    margin: 0;
    padding: 0;
}
div, p {
    border: 2px solid #c00;
    padding: 10px;
}
p { border-color: #00c;}
</style>
</head>
<body>
<div>Thành phần div</div>
</body>
</html>

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

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>nội dung thêm vào</p>
<div>Thành phần div</div>

Download file để thực hành

:before() cho từng item

Html viết:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Học Web Chuẩn</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(function(){
    $('li').before('<li class="add">Nội dung thêm vào</li>');
});
</script>
<style>
* { /* reset lại margin và padding cho các tag */
    margin: 0;
    padding: 0;
}
li {
    border: 2px solid #c00;
    padding: 10px;
}
.add { border-color: #00c;}
</style>
</head>
<body>
<ul>
<li>Thành phần li</li>
<li>Thành phần li</li>
<li>Thành phần li</li>
</ul>
</body>
</html>

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

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

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

<ul>
<li>Thành phần li</li>
<li>Thành phần li</li>
<li>Thành phần li</li>
</ul>

<ul>
<li class="add">Nội dung thêm vào</li>
<li>Thành phần li</li>
<li class="add">Nội dung thêm vào</li>
<li>Thành phần li</li>
<li class="add">Nội dung thêm vào</li>
<li>Thành phần li</li>
</ul>

:before() kết hợp với function .click()

Html viết:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Học Web Chuẩn</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(function(){
    var item = $('<li class="add">Nội dung thêm vào</li>');
    
    $('button').click(function(){
        $('li').before(item);
    });
});
</script>
<style>
* { /* reset lại margin và padding cho các tag */
    margin: 0;
    padding: 0;
}
li {
    border: 2px solid #c00;
    padding: 10px;
}
.add { border-color: #00c;}
button {
    margin-bottom: 5px;
    padding: 0 5px;
}
</style>
</head>
<body>
<button>Click</button>
<ul>
<li>Thành phần li</li>
<li>Thành phần li</li>
<li>Thành phần li</li>
</ul>
</body>
</html>

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

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

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

<ul>
<li>Thành phần li</li>
<li>Thành phần li</li>
<li>Thành phần li</li>
</ul>

<ul>
<li class="add">Nội dung thêm vào</li>
<li>Thành phần li</li>
<li class="add">Nội dung thêm vào</li>
<li>Thành phần li</li>
<li class="add">Nội dung thêm vào</li>
<li>Thành phần li</li>
</ul>

Trả lời

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *