Trong tài liệu HTML, có thể sử dụng
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
0 để lấy nội dung của bất kỳ phần tử nào. Nếu biểu thức bộ chọn khớp với nhiều phần tử, thì chỉ phần tử khớp đầu tiên sẽ được trả về nội dung HTML của nó. Hãy xem xét mã này1
$( "div.demo-container" ).html();
Để lấy được nội dung của
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
1 sau, nó phải là nội dung đầu tiên có<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
2 trong tài liệu1
2
3
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
Kết quả sẽ như thế này
1
<div class="demo-box">Demonstration Box</div>
Phương pháp này sử dụng thuộc tính
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
3 của trình duyệt. Một số trình duyệt có thể không trả về HTML sao chép chính xác nguồn HTML trong tài liệu gốc. Ví dụ: đôi khi Internet Explorer bỏ dấu ngoặc kép xung quanh các giá trị thuộc tính nếu chúng chỉ chứa các ký tự chữ và sốGhi chú bổ sung
- Theo thiết kế, bất kỳ hàm tạo hoặc phương thức jQuery nào chấp nhận chuỗi HTML — jQuery(),. nối thêm(),. sau (), v.v. - có khả năng có thể thực thi mã. Điều này có thể xảy ra bằng cách chèn các thẻ tập lệnh hoặc sử dụng các thuộc tính HTML thực thi mã (ví dụ:
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
4). Không sử dụng các phương pháp này để chèn các chuỗi thu được từ các nguồn không đáng tin cậy, chẳng hạn như tham số truy vấn URL, cookie hoặc đầu vào biểu mẫu. Làm như vậy có thể dẫn đến lỗ hổng cross-site-scripting (XSS). Xóa hoặc thoát bất kỳ đầu vào nào của người dùng trước khi thêm nội dung vào tài liệu
Thí dụ
Nhấp vào một đoạn văn để chuyển đổi nó từ html sang văn bản
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
________số 8_______Thử nghiệm
.html( htmlString )Trả về.
Sự miêu tả. Đặt nội dung HTML của từng phần tử trong tập hợp các phần tử phù hợp
phiên bản thêm. 1. 0
htmlChuỗi
Loại.
Một chuỗi HTML để đặt làm nội dung của từng phần tử phù hợp
phiên bản thêm. 1. 4
hàm số
Loại. ( chỉ mục, oldhtml ) =>
Một hàm trả về nội dung HTML để đặt. Nhận vị trí chỉ mục của phần tử trong tập hợp và giá trị HTML cũ làm đối số. jQuery làm trống phần tử trước khi gọi hàm; . Trong hàm,
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
5 đề cập đến phần tử hiện tại trong tập hợp
Phương thức
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
0 không có trong tài liệu XMLKhi
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
0 được sử dụng để đặt nội dung của phần tử, mọi nội dung trong phần tử đó sẽ được thay thế hoàn toàn bằng nội dung mới. Ngoài ra, jQuery loại bỏ các cấu trúc khác như trình xử lý dữ liệu và sự kiện khỏi các phần tử con trước khi thay thế các phần tử đó bằng nội dung mớiHãy xem xét HTML sau
1
2
3
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
Nội dung của
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
8 có thể được thiết lập như thế này1
2
$( "div.demo-container" )
.html( "<p>All new content. <em>You bet!</em></p>" );
Dòng mã đó sẽ thay thế mọi thứ bên trong
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
81
2
3
<div class="demo-container">
<p>All new content. <em>You bet!</em></p>
</div>
Kể từ jQuery 1. 4, phương thức
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
0 cho phép thiết lập nội dung HTML bằng cách truyền vào một hàm1
2
3
4
$( "div.demo-container" ).html(function() {
var emphasis = "<em>" + $( "p" ).length + " paragraphs!</em>";
return "<p>All new content for " + emphasis + "</p>";
});
Đưa ra một tài liệu có sáu đoạn văn, ví dụ này sẽ đặt HTML của
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
8 thành<div class="demo-box">Demonstration Box</div>
2Phương pháp này sử dụng thuộc tính
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
3 của trình duyệt. Một số trình duyệt có thể không tạo DOM sao chép chính xác nguồn HTML được cung cấp. Ví dụ: Internet Explorer trước phiên bản 8 sẽ chuyển đổi tất cả thuộc tính<div class="demo-box">Demonstration Box</div>
4 trên các liên kết thành URL tuyệt đối và Internet Explorer trước phiên bản 9 sẽ không xử lý chính xác các phần tử HTML5 nếu không bổ sung lớp tương thích riêngĐể đặt nội dung của phần tử
<div class="demo-box">Demonstration Box</div>
5, không chứa HTML, hãy sử dụng phương thức<div class="demo-box">Demonstration Box</div>
6 chứ không phải<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
0Ghi chú. Trong Internet Explorer cho đến và bao gồm cả phiên bản 9, việc đặt nội dung văn bản của một phần tử HTML có thể làm hỏng các nút văn bản của phần tử con của nó đang bị xóa khỏi tài liệu do thao tác. Nếu bạn đang giữ các tham chiếu đến các phần tử DOM này và cần chúng không thay đổi, hãy sử dụng
<div class="demo-box">Demonstration Box</div>
8 thay vì<div class="demo-box">Demonstration Box</div>
9 để các phần tử được xóa khỏi tài liệu trước khi chuỗi mới được gán cho phần tử đó