jQuery duyệt - phương thức contents()
Mô hình
Tìm tất cả các nút văn bản trong đoạn và bao bọc chúng bằng thẻ in đậm.
$("p").contents().filter(function(){ return this.nodeType != 1; }).wrap("<b/>");
Định nghĩa và cách sử dụng
Phương thức contents() thu thập các nút con của mỗi phần tử trong bộ phần tử khớp, bao gồm các nút văn bản và nút chú thích.
Cú pháp
.contents()
Giải thích chi tiết
Nếu cung cấp đối tượng jQuery biểu thị bộ phần tử DOM, phương thức .contents() cho phép chúng ta truy xuất các nút con trực tiếp của các phần tử này trong cây DOM và tạo mới đối tượng jQuery bằng cách so khớp các phần tử. .contents() và .children() Cách làm tương tự, nhưng khác biệt là前者 trong đối tượng jQuery kết quả chứa các nút văn bản và các phần tử HTML.
phương thức .contents() cũng có thể được sử dụng để lấy tài liệu nội dung của iframe, điều kiện là iframe này và trang chính thuộc cùng một域.
Hãy suy nghĩ về <div> dưới đây có một số nút văn bản, mỗi nút được chia bởi hai phần tử gạch ngang (br /):
<div class="container"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. <br /><br /> Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. <br /> <br /> Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. </div>
Chúng ta có thể sử dụng phương thức .contents() để chuyển đổi khối văn bản thành đoạn văn có dạng tốt:
$('.container').contents().filter(function() { return this.nodeType == 3; ) .wrap('<p></p>') .end() .filter('br') .remove();
Mã này đầu tiên sẽ nhận nội dung của <div class="container">, sau đó lọc các nút văn bản, và gói các nút văn bản vào thẻ đoạn. Điều này được thực hiện bằng cách kiểm tra thuộc tính .nodeType của phần tử. Thuộc tính này chứa mã số chỉ định loại nút; các nút văn bản sử dụng mã 3. Nội dung sẽ được lọc lại, lần này là cho các phần tử <br />, các phần tử này sẽ bị loại bỏ.