Hướng dẫn how do you repeat a div in html? - làm thế nào để bạn lặp lại một div trong html?

9

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Làm thế nào tôi có thể nhân đôi một

const node = document.querySelector('.box');
[...Array(5)].forEach(_ => node.parentNode.insertBefore(node.cloneNode(true), node));
6 để có n bản sao bằng JavaScript?

Bắt đầu với 1:

Kết thúc với 5:

Hướng dẫn how do you repeat a div in html? - làm thế nào để bạn lặp lại một div trong html?

Web_Designer

70K89 Huy hiệu vàng203 Huy hiệu bạc261 Huy hiệu Đồng89 gold badges203 silver badges261 bronze badges

Đã hỏi ngày 15 tháng 5 năm 2015 lúc 20:13May 15, 2015 at 20:13

Hướng dẫn how do you repeat a div in html? - làm thế nào để bạn lặp lại một div trong html?

1

Sử dụng Node JS Pure.clonenode:

https://developer.mozilla.org/en-US/docs/Web/API/Node/cloneNode

function multiplyNode(node, count, deep) {
    for (var i = 0, copy; i < count - 1; i++) {
        copy = node.cloneNode(deep);
        node.parentNode.insertBefore(copy, node);
    }
}

multiplyNode(document.querySelector('.box'), 5, true);

Vượt qua

const node = document.querySelector('.box');
[...Array(5)].forEach(_ => node.parentNode.insertBefore(node.cloneNode(true), node));
7 dưới dạng đối số thứ ba cho
const node = document.querySelector('.box');
[...Array(5)].forEach(_ => node.parentNode.insertBefore(node.cloneNode(true), node));
8 để sao chép các nút con.

Đây là bản demo.

Edit:

Với cú pháp ngưng tụ ES6, ví dụ trên trở thành:

const node = document.querySelector('.box');
[...Array(5)].forEach(_ => node.parentNode.insertBefore(node.cloneNode(true), node));

Vulcan Raven

31.7K10 Huy hiệu vàng55 Huy hiệu bạc92 Huy hiệu Đồng10 gold badges55 silver badges92 bronze badges

Đã trả lời ngày 15 tháng 5 năm 2015 lúc 21:14May 15, 2015 at 21:14

Web_DesignerWeb_DesignerWeb_Designer

70K89 Huy hiệu vàng203 Huy hiệu bạc261 Huy hiệu Đồng89 gold badges203 silver badges261 bronze badges

0

Đã hỏi ngày 15 tháng 5 năm 2015 lúc 20:13

jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())

Sử dụng Node JS Pure.clonenode:

Vượt qua

const node = document.querySelector('.box');
[...Array(5)].forEach(_ => node.parentNode.insertBefore(node.cloneNode(true), node));
7 dưới dạng đối số thứ ba cho
const node = document.querySelector('.box');
[...Array(5)].forEach(_ => node.parentNode.insertBefore(node.cloneNode(true), node));
8 để sao chép các nút con.May 15, 2015 at 20:25

Hướng dẫn how do you repeat a div in html? - làm thế nào để bạn lặp lại một div trong html?

Đây là bản demo.Abhi

Với cú pháp ngưng tụ ES6, ví dụ trên trở thành:6 gold badges43 silver badges74 bronze badges

Vulcan Raven

31.7K10 Huy hiệu vàng55 Huy hiệu bạc92 Huy hiệu Đồng

for(var i=0;i<("how many repeat do you want");i++){
   $("#divRepeat").append($(".box").html());
   //you can add other logic here, like you want diferent id or class to add in new box
}

Đã trả lời ngày 15 tháng 5 năm 2015 lúc 21:14Oct 17, 2019 at 2:11

Tạo một div container với ID và đặt

const node = document.querySelector('.box');
[...Array(5)].forEach(_ => node.parentNode.insertBefore(node.cloneNode(true), node));
9 bên trong nó. Sau đó, sử dụng jQuery, bạn có thể chạy một vòng lặp với số lượng thời gian mong muốn và nối các div như

"; } ?>

Kiểm tra fiddleMay 15, 2015 at 20:17

bugs2919bugs2919bugs2919

Đã trả lời ngày 15 tháng 5 năm 2015 lúc 20:251 silver badge8 bronze badges

Những gì bạn sẽ học

  • Cách thực hiện Chỉ thị cấu trúc tùy chỉnh trong Angular
  • Cách sử dụng các biến mẫu
  • Cách thực hiện NGFOR tùy chỉnh cho các nhu cầu cụ thể của bạn
  • Cách tái cấu trúc mã thành phần bằng cách sử dụng các chỉ thị

Giới thiệu

Hầu như hàng ngày, chúng tôi bắt gặp nhiệm vụ để hiển thị danh sách thời gian trong chế độ xem thành phần. Điều này bao gồm lặp lại HTML và giải pháp phổ biến là sử dụng

jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3 như vậy:

<>Copy

<div *ngFor="let item of items"> div>

Nhưng bạn có biết dấu hoa thị này được sử dụng cùng với phần

jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3 không? Nếu bạn đủ tò mò, rất có thể bạn biết rằng nó biểu thị một chỉ thị cấu trúc được chuyển đổi bởi một trình biên dịch thành:

<>Copy

<ng-template ngFor let-item [ngForOf]="items"> <div> div> ng-template>

Nhưng bạn có biết rằng chúng ta có thể tạo ra các chỉ thị cấu trúc của riêng mình không? Trên thực tế, có những trường hợp khi đó là một ý tưởng tốt để xây dựng một chỉ thị cấu trúc tùy chỉnh để hiển thị một mẫu yêu cầu lặp lại HTML. Đặc biệt nếu bạn muốn lặp lại các yếu tố tương tự - như trong một số tiện ích xếp hạng, bao gồm 5 yếu tố UI của ngôi sao. Bạn có thể tưởng tượng cú pháp cho trường hợp này có thể tương tự như được trình bày dưới đây:

0

Trong hướng dẫn này, chúng tôi sẽ học cách tạo một chỉ thị, từng bước, bằng cách thực hiện một chỉ thị cấu trúc để lặp lại các yếu tố HTML. Tôi cũng sẽ chạm nhanh vào việc chuyển đổi mà trình biên dịch áp dụng cho cú pháp Asterisk, biến mẫu và so sánh cách tiếp cận của chúng tôi với góc

jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3.

HTML động

Kết xuất các yếu tố

jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
6 trong Angular là điều mà chúng tôi làm hàng ngày và đó là một khái niệm rất dễ dàng - bất cứ khi nào chúng tôi viết mã
jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
6 trong mẫu thành phần của chúng tôi, Angular sẽ xử lý mẫu này và hiển thị nó trong thời gian chạy tự động bằng cách sử dụng các yếu tố mà chúng tôi đã triển khai.

Kết xuất các phần tử

jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
6 sẽ được thêm vào DOM theo cách động - là một quá trình phức tạp hơn một chút. Các kỹ thuật phổ biến nhất sử dụng các chỉ thị
jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
9 và
jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3 để hiển thị các yếu tố một cách linh hoạt.

Chúng tôi có thể tìm thấy một ví dụ về điều đó dưới đây:

1

Mã này sử dụng chỉ thị

jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
9 để hiển thị phần tử
2 dựa trên giá trị
3. Nếu nó sẽ là
const node = document.querySelector('.box');
[...Array(5)].forEach(_ => node.parentNode.insertBefore(node.cloneNode(true), node));
7, phần tử sẽ được hiển thị, nếu nó sẽ là
5, nó sẽ không được thêm vào DOM.

Một ví dụ khác về phương pháp đó, nhưng sử dụng Chỉ thị

jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3 như sau:

2

Mã trên sẽ hiển thị các phần tử

7 cho mỗi phần tử trong mảng được gọi là
8. Vì vậy, nó là một ví dụ khác về các yếu tố được hiển thị động.

Có các trường hợp sử dụng khi các chỉ thị tiêu chuẩn là không đủ. Các dự án của chúng tôi thường yêu cầu các cơ chế cụ thể và các hành vi tùy chỉnh và chúng tôi phải thực hiện các khái niệm của riêng mình cho điều đó.

Kết xuất nhiều yếu tố dựa trên một số

Chúng ta có thể nghĩ về một trường hợp mà chúng ta muốn hiển thị một số mục. Để làm cho ví dụ cụ thể hơn, chúng ta hãy nói rằng chúng ta muốn hiển thị các ngôi sao trong một số chế độ xem và số lượng ngôi sao là động, được cung cấp trong một số biến.

Quan điểm có thể trông như sau:

Hướng dẫn how do you repeat a div in html? - làm thế nào để bạn lặp lại một div trong html?
Hướng dẫn how do you repeat a div in html? - làm thế nào để bạn lặp lại một div trong html?

Cách tiếp cận NGFOR

Làm thế nào chúng ta có thể thực hiện một quan điểm như vậy? Chà, chúng ta có thể sử dụng

jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3 để tạo số lượng các phần tử động trong
jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
6. Mã HTML thực hiện chỉ đơn giản là
jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3 để hiển thị các ngôi sao, trông như sau:

3

Lớp thành phần phải cung cấp biến

for(var i=0;i<("how many repeat do you want");i++){
   $("#divRepeat").append($(".box").html());
   //you can add other logic here, like you want diferent id or class to add in new box
}
2, sẽ được sử dụng để điền vào
jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3. Mảng phải có kích thước bằng số lượng sao chúng tôi muốn hiển thị.

4

Lưu ý rằng mảng có các mục trống vì nó chỉ được khởi tạo với kích thước 5 và đó là tất cả những gì chúng ta cần. Chúng tôi không thực sự sử dụng các mục cụ thể của mảng - chúng tôi chỉ quan tâm đến mảng cho

jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3 để hoạt động.

Cách tiếp cận này, sử dụng

jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3, hoạt động như mong đợi, tuy nhiên, nó yêu cầu tạo ra một mảng có kích thước cụ thể, mỗi lần chúng tôi muốn lặp lại các phần tử trong
jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
6 - điều đó không lý tưởng. NGFOR có các cơ hội tùy chỉnh hạn chế, vì vậy trong hướng dẫn này, chúng tôi sẽ đề xuất một triển khai tốt hơn, điều đó sẽ dễ sử dụng hơn và giành được sự trùng lặp mã sản xuất.

Chỉ thị tùy chỉnh

Chúng tôi sẽ sử dụng các chỉ thị cấu trúc để giải quyết vấn đề chính của chúng tôi. Vì vậy, để liên tục tạo ra các yếu tố, nhiều lần như chúng ta muốn.

Chúng tôi sẽ bắt đầu bằng cách tạo một chỉ thị và thực hiện nó theo cách mà nó hiển thị một phần tử duy nhất. Nói cách khác, nó nên thêm vào DOM một chế độ xem, được tạo dựa trên mẫu được cung cấp.

Chúng ta hãy bắt đầu bằng cách tạo một chỉ thị (chúng ta có thể sử dụng CLI góc để tạo nó cho chúng ta). Chúng tôi sẽ gọi nó là một chỉ thị lặp lại

5

Lớp lệnh trống trông như sau:

6

Chúng tôi có thể sử dụng nó ngay bây giờ trong mã thành phần HTML của chúng tôi để xem điều gì sẽ xảy ra. Vì vậy, thay vì sử dụng trước đây của

jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3, chúng tôi đang thay thế nó bằng Chỉ thị của chúng tôi:

7

Điều gì xảy ra khi chúng ta chạy nó và kiểm tra nó trực tiếp? Chà, chúng tôi đã thắng được nhìn thấy bất kỳ ngôi sao nào, thậm chí không có một ngôi sao nào. Tại sao vậy?

Angular kết thúc phần tử

for(var i=0;i<("how many repeat do you want");i++){
   $("#divRepeat").append($(".box").html());
   //you can add other logic here, like you want diferent id or class to add in new box
}
8 của chúng tôi dưới dạng mẫu, như thế này:

8

Đây là một mẫu bây giờ, vì vậy nó đã giành được tự động vào DOM. Chúng ta cần phải thực hiện điều đó một mình. Hãy để làm điều đó!

Đầu tiên chúng ta cần tiêm tham chiếu vào mẫu và thùng chứa trong hàm tạo:

9

Với điều đó, chúng ta có thể làm việc để hiển thị mẫu. Hiện tại, hãy để don don nghĩ về việc hiển thị mẫu nhiều lần - chúng tôi sẽ làm điều đó sau. Ngay bây giờ, tập trung vào kết xuất đơn giản.

Cú pháp để tạo chế độ xem và chèn nó vào DOM thực sự rất dễ dàng - nó là một chức năng duy nhất trong lớp

for(var i=0;i<("how many repeat do you want");i++){
   $("#divRepeat").append($(".box").html());
   //you can add other logic here, like you want diferent id or class to add in new box
}
9:

function multiplyNode(node, count, deep) {
    for (var i = 0, copy; i < count - 1; i++) {
        copy = node.cloneNode(deep);
        node.parentNode.insertBefore(copy, node);
    }
}

multiplyNode(document.querySelector('.box'), 5, true);
0

Chúng tôi sẽ thêm dòng này vào móc vòng đời

";
}
?>
0:

function multiplyNode(node, count, deep) {
    for (var i = 0, copy; i < count - 1; i++) {
        copy = node.cloneNode(deep);
        node.parentNode.insertBefore(copy, node);
    }
}

multiplyNode(document.querySelector('.box'), 5, true);
1

Chỉ thị như vậy nên thêm vào DOM, một yếu tố duy nhất. Hãy để kiểm tra ứng dụng trực tiếp:

Hướng dẫn how do you repeat a div in html? - làm thế nào để bạn lặp lại một div trong html?
Hướng dẫn how do you repeat a div in html? - làm thế nào để bạn lặp lại một div trong html?

Chỉ thị hoạt động như mong đợi.

Bây giờ chúng ta có thể tập trung vào việc thêm vào nhiều yếu tố DOM, nhưng trước tiên, chúng ta cần biết chúng ta nên hiển thị bao nhiêu yếu tố.

Cho rằng chúng ta có thể sử dụng thuộc tính đầu vào, vì vậy số sẽ được cung cấp khi áp dụng Chỉ thị. Các thuộc tính đầu vào hoạt động giống như trong thế giới thành phần. Vì vậy, chúng tôi có thể tuyên bố chúng như sau:

function multiplyNode(node, count, deep) {
    for (var i = 0, copy; i < count - 1; i++) {
        copy = node.cloneNode(deep);
        node.parentNode.insertBefore(copy, node);
    }
}

multiplyNode(document.querySelector('.box'), 5, true);
2

Và sau đó, cung cấp dữ liệu trong HTML như thế này:

function multiplyNode(node, count, deep) {
    for (var i = 0, copy; i < count - 1; i++) {
        copy = node.cloneNode(deep);
        node.parentNode.insertBefore(copy, node);
    }
}

multiplyNode(document.querySelector('.box'), 5, true);
3

Có một mẹo thú vị mặc dù. Nếu tên của đầu vào sẽ giống như bộ chọn chỉ thị, thì cú pháp có thể được đơn giản hóa. Hãy xem triển khai đầu vào như vậy:

function multiplyNode(node, count, deep) {
    for (var i = 0, copy; i < count - 1; i++) {
        copy = node.cloneNode(deep);
        node.parentNode.insertBefore(copy, node);
    }
}

multiplyNode(document.querySelector('.box'), 5, true);
4

Chúng tôi không muốn thay đổi tên thực tế của biến, bởi vì nó giải thích nhiều hơn theo cách này, nhưng chúng tôi có thể thay đổi tên đầu vào theo quy ước được mô tả ở trên. Với mã đó, chúng tôi có thể sửa đổi HTML như sau:

function multiplyNode(node, count, deep) {
    for (var i = 0, copy; i < count - 1; i++) {
        copy = node.cloneNode(deep);
        node.parentNode.insertBefore(copy, node);
    }
}

multiplyNode(document.querySelector('.box'), 5, true);
5

Điều đó tốt hơn, phải không? Nó cũng nhìn kỹ hơn vào các chỉ thị phổ biến mà chúng ta biết, chẳng hạn như

jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
9 hoặc
jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3.

Bây giờ, khi chúng ta có số lượng các yếu tố chúng ta muốn kết xuất, chúng ta thực sự có thể thực hiện điều đó. Chúng tôi sẽ sử dụng một vòng lặp

";
}
?>
3 đơn giản để thêm các phần tử vào DOM bao nhiêu lần tùy thích. Đoạn trích dưới đây trình bày khái niệm hoàn chỉnh:

function multiplyNode(node, count, deep) {
    for (var i = 0, copy; i < count - 1; i++) {
        copy = node.cloneNode(deep);
        node.parentNode.insertBefore(copy, node);
    }
}

multiplyNode(document.querySelector('.box'), 5, true);
6

Chúng tôi có thể kiểm tra ứng dụng trực tiếp và nó hoạt động chính xác như chúng tôi muốn:

Hướng dẫn how do you repeat a div in html? - làm thế nào để bạn lặp lại một div trong html?
Hướng dẫn how do you repeat a div in html? - làm thế nào để bạn lặp lại một div trong html?

Thuận lợi

Có rất nhiều lợi thế của phương pháp này. Cái chính được liệt kê dưới đây:

Khả năng đọc - Khi đọc mã HTML, nó rõ ràng hơn nhiều về cách nó sẽ hoạt động khi sử dụng chỉ thị của chúng tôi: — when reading the HTML code, it’s far more obvious how it will behave when using our directive:

function multiplyNode(node, count, deep) {
    for (var i = 0, copy; i < count - 1; i++) {
        copy = node.cloneNode(deep);
        node.parentNode.insertBefore(copy, node);
    }
}

multiplyNode(document.querySelector('.box'), 5, true);
7

Dễ dàng sử dụng lại - nó rất dễ sử dụng tính năng này ở những nơi khác. Nó chỉ là vấn đề áp dụng chỉ thị trong

jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
6 và không cần phải khai báo một mảng trong lớp thành phần như trong cách tiếp cận
jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3.
— it’s extremely easy to use this feature in other places. It’s only a matter of applying the directive in
jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
6, and there is no need for declaring an array in the component’s class as in the
jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3 approach.

function multiplyNode(node, count, deep) {
    for (var i = 0, copy; i < count - 1; i++) {
        copy = node.cloneNode(deep);
        node.parentNode.insertBefore(copy, node);
    }
}

multiplyNode(document.querySelector('.box'), 5, true);
8

Đơn giản - Logic được chuyển từ thành phần này sang chỉ thị khác, vì vậy các chi tiết triển khai được ẩn. Điều duy nhất mà người dùng cuối phải quan tâm là cung cấp có bao nhiêu mặt hàng cần được hiển thị bằng cách sử dụng giá trị số đơn giản! Không cần tạo một mảng có kích thước cụ thể. — the logic is moved from component to directive, so the implementation details are hidden. The only thing the end-user has to care about is to provide how many items need to be rendered using a simple number value! No need for creating an array of a specific size.

function multiplyNode(node, count, deep) {
    for (var i = 0, copy; i < count - 1; i++) {
        copy = node.cloneNode(deep);
        node.parentNode.insertBefore(copy, node);
    }
}

multiplyNode(document.querySelector('.box'), 5, true);
9

Bit sâu

Phần này giải thích các khái niệm được sử dụng trong hướng dẫn này bằng cách đi sâu vào các tính năng góc.

Chỉ thị cấu trúc

Chỉ thị trong Angular có thể phục vụ nhiều mục đích. Chúng được chia thành hai nhóm, chỉ thị cấu trúc và chỉ thị thuộc tính. Trong hướng dẫn này, chúng tôi sẽ tập trung vào nhóm đầu tiên - nhóm chỉ thị thay đổi cấu trúc DOM.

Chỉ thị cấu trúc xác định cấu trúc DOM và đó chính xác là những gì chúng ta cần. Chúng tôi muốn thêm các yếu tố vào DOM.

Làm thế nào để một chỉ thị tương tác với DOM? Nó sử dụng hai yếu tố chính:

  • Mẫu - Lưu trữ thông tin về phần tử để kết xuất - stores information about the element to render
  • Xem - Container là tài liệu tham khảo của chúng tôi để tương tác với DOM - the container which is our reference for interacting with the DOM

Cả hai yếu tố có thể được tiêm vào hàm tạo chỉ thị, như sau:

const node = document.querySelector('.box');
[...Array(5)].forEach(_ => node.parentNode.insertBefore(node.cloneNode(true), node));
0

";
}
?>
6 là một tham chiếu đến mẫu của phần tử của chúng tôi. Mẫu được tạo bằng cách tự động khi chúng ta sử dụng ký hiệu dấu hoa thị. Chẳng hạn, khi chúng ta sử dụng
jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
9 hoặc
";
}
?>
8 từ đoạn trích ở trên như sau:

const node = document.querySelector('.box');
[...Array(5)].forEach(_ => node.parentNode.insertBefore(node.cloneNode(true), node));
1

Angular sẽ biên dịch điều này theo cách như vậy:

const node = document.querySelector('.box');
[...Array(5)].forEach(_ => node.parentNode.insertBefore(node.cloneNode(true), node));
2

Phần tử

";
}
?>
9 là mẫu góc và tham chiếu đến cấu trúc chính xác đó được truyền qua
";
}
?>
6. Xin lưu ý rằng, bởi vì Angular kết thúc nội dung trong
";
}
?>
9Tags - điều đó có nghĩa là, nó sẽ không được thêm vào DOM một cách tự động. Nó sẽ được lưu trữ dưới dạng mẫu để sử dụng thêm bởi một số chỉ thị hoặc bất kỳ mã nào khác tương tác với DOM và quản lý các chế độ xem động.

NGFOR

Chỉ thị

<>Copy

<div *ngFor="let item of items"> div>
2 của chúng tôi có rất nhiều điểm tương đồng với Chỉ thị
jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3 phổ biến, vì vậy hãy để nhanh chóng kiểm tra sự khác biệt. Nó luôn luôn tốt để biết những lợi thế và nhược điểm của cách tiếp cận bạn chọn để thực hiện là gì. Bạn cũng có thể sử dụng thông tin này để áp dụng một số thay đổi cho chỉ thị của chúng tôi dựa trên việc triển khai
jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3.

Sự khác biệt chính là

jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3 làm cho các phần tử trong móc

<>Copy

<div *ngFor="let item of items"> div>
6. Nó rất quan trọng cho lý do hiệu suất.
jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3 có cơ chế theo dõi các phần tử được hiển thị bằng cách sử dụng hàm đặc biệt

<>Copy

<div *ngFor="let item of items"> div>
8. Vì vậy, để hiển thị hiệu quả các phần tử, góc kiểm tra đối tượng trong mảng và quyết định có nên hiển thị lại chúng hay không. Nếu danh tính là tích cực, thì Angular sẽ không xóa phần tử và hiển thị nó một lần nữa, nó sẽ không làm gì cho yếu tố cụ thể này.

Dưới đây là một hướng dẫn độc đáo về

jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3, giải thích chi tiết khái niệm này.

Biến mẫu - Tính năng thưởng

Chỉ thị của chúng tôi hoạt động tốt, nhưng có một điều nữa có thể được cải thiện. Khi sử dụng

jQuery("#container_div_id").append(jQuery("#container_div_id").children().first().clone())
3, chúng tôi có quyền truy cập vào một số biến hữu ích - ví dụ, chỉ số của phần tử. Điều này có thể hữu ích khi chúng tôi muốn áp dụng một số tính năng động cho các chỉ mục cụ thể. Ví dụ, chúng tôi có thể muốn đặt một số kiểu dáng cho mọi ngôi sao, sau lần thứ ba hoặc thay đổi nội dung một chút sau ngôi sao thứ năm. Vì vậy, thông tin về chỉ số có thể khá hữu ích. Hãy để thực hiện tính năng này vào chỉ thị của chúng tôi.

Hàm tạo ra chế độ xem, hỗ trợ truyền một đối tượng tùy chọn, sẽ được sử dụng để điền vào các biến mẫu. Các biến này có thể được sử dụng khi cần thiết. Để tham khảo biến, chúng tôi sẽ sửa đổi mã HTML của chúng tôi một chút:

const node = document.querySelector('.box');
[...Array(5)].forEach(_ => node.parentNode.insertBefore(node.cloneNode(true), node));
3

Để thực hiện logic để giữ chỉ số của phần tử cụ thể, chúng tôi thêm đối tượng làm đối số thứ hai, khi tạo chế độ xem:

const node = document.querySelector('.box');
[...Array(5)].forEach(_ => node.parentNode.insertBefore(node.cloneNode(true), node));
4

Chúng tôi đang sử dụng tham số gọi là

<>Copy

<ng-template ngFor let-item [ngForOf]="items"> <div> div> ng-template>
1 để cho phép bất kỳ ai sử dụng chỉ thị của chúng tôi để chọn tên riêng cho biến mẫu. Trong ví dụ của chúng tôi từ trên, chúng tôi đã gán nó cho

<>Copy

<ng-template ngFor let-item [ngForOf]="items"> <div> div> ng-template>
2.

Bản tóm tắt

Các chỉ thị cấu trúc rất mạnh mẽ và có thể cực kỳ hữu ích khi sửa đổi cấu trúc DOM. Chúng ta có thể tự nhiên nghĩ về việc giải quyết các vấn đề trong các thành phần của chúng ta, nhưng thường sẽ dễ dàng hơn nếu chúng ta đặt các chỉ thị vào phương trình.

Thực hiện một phương tiện chỉ thị tùy chỉnh, các thành phần đó sẽ có ít mã hơn, HTML sẽ dễ đọc hơn và cuối cùng, sẽ có ít sao chép mã hơn. Logic trong chỉ thị sẽ dễ dàng hơn để kiểm tra và hiểu. Tôi khuyến khích bạn sử dụng các chỉ thị trong các dự án của bạn và vui vẻ khám phá khả năng của họ.

Dưới đây là một liên kết đến Stackblitz với mã hoàn chỉnh cho hướng dẫn này.

Nếu bạn không nhớ tất cả mọi thứ, hãy nhớ điều này: Chúng ta có thể sử dụng các chỉ thị cấu trúc để hiển thị các yếu tố và có toàn quyền kiểm soát điều đó chỉ trong một vài dòng mã:

const node = document.querySelector('.box');
[...Array(5)].forEach(_ => node.parentNode.insertBefore(node.cloneNode(true), node));
5

Enjoy!

Bạn có thể sử dụng cùng một lớp div hai lần không?

Có tất nhiên, nhiều lần như bạn muốn..

Làm thế nào để bạn lặp lại một hành động trong JavaScript?

JavaScript String R chế ra () phương thức REBEAR () trả về một chuỗi với một số bản sao của chuỗi.Phương thức lặp lại () trả về một chuỗi mới.Phương thức lặp lại () không thay đổi chuỗi gốc.repeat() The repeat() method returns a string with a number of copies of a string. The repeat() method returns a new string. The repeat() method does not change the original string.