Giả sử bạn có một số HTML là một chuỗi: Có thể nó đến từ một API hoặc bạn đã tự xây dựng nó từ các mẫu văn bản hoặc một cái gì đó. Bạn có thể sử dụng let string_of_html = `
8 để đưa nó vào một yếu tố, như:document.body.innerHTML = string_of_html;
// Append it instead
document.body.innerHTML += string_of_html;
document.body.innerHTML = string_of_html;
// Append it instead
document.body.innerHTML += string_of_html;
Bạn có quyền kiểm soát hơn một chút nếu bạn đi với chức năng
document.body.innerHTML = string_of_html;
// Append it instead
document.body.innerHTML += string_of_html;
9 vì bạn có thể đặt HTML mới ở bốn nơi khác nhau:
text inside node
Bạn sử dụng nó như…
el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
Có những trường hợp bạn có thể muốn có DOM mới được tạo ra trong JavaScript trước khi bạn làm bất cứ điều gì với nó. Trong trường hợp đó, bạn có thể phân tích chuỗi của mình trước, như:
let dom = new DOMParser[]
.parseFromString[string_of_html, 'text/html'];
Điều đó sẽ cung cấp cho bạn một DOM hoàn chỉnh, vì vậy bạn sẽ cần phải kéo đứa trẻ bạn thêm vào. Giả sử nó chỉ có một yếu tố cha mẹ, mà giống như
let dom = new DOMParser[]
.parseFromString[string_of_html, 'text/html'];
let new_element = dom.body.firstElementChild;
Bây giờ bạn có thể gây rối với
text inside node
0 đó khi cần thiết, tôi cho rằng trước khi làm những gì bạn cần làm với nó.Mặc dù vậy, nó rất đơn giản hơn để làm điều này:
let new_element = document.createRange[]
.createContextualFragment[string_of_html];
Bạn sẽ nhận được phần tử trực tiếp như một đoạn tài liệu để nối hoặc bất cứ điều gì khi cần thiết. Phương pháp này đáng chú ý ở chỗ nó thực sự sẽ thực hiện
text inside node
1s mà nó tìm thấy bên trong, có thể vừa hữu ích vừa nguy hiểm.Có một lượng đáng kể sắc thái cho tất cả điều này. Ví dụ, HTML cần phải hợp lệ. HTML bị dị tật chỉ là đi làm. Bị dị tật cũng có thể khiến bạn ngạc nhiên, như đưa
text inside node
2 vào
text inside node
3 sẽ thất bại vì nó thiếu một
text inside node
4.Koen Schaft viết ra Tạo một nút DOM từ chuỗi HTML, bao gồm những gì chúng ta có ở đây nhưng chi tiết hơn và với nhiều gotchas hơn.
Cách nối chuỗi chuỗi HTML như
var str = 'Just some text here
';
đến
text inside node
5 với ID
text inside node
6?[BTW
text inside node
7 không được chấp nhận.]
hỏi ngày 6 tháng 9 năm 2011 lúc 22:48Sep 6, 2011 at 22:48
Šime Vidasšime vidasŠime Vidas
177K60 Huy hiệu vàng279 Huy hiệu bạc377 Huy hiệu đồng60 gold badges279 silver badges377 bronze badges
0
Màn biểu diễn
text inside node
8 [e] nhanh hơn 2 lần so với các giải pháp khác trên Chrome và Safari, ____ 19 [f] là nhanh nhất trên Firefox. el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
0 [b] [không nhầm lẫn với el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
1 [a]] là giải pháp nhanh thứ hai trên tất cả các trình duyệt và nó tiện dụng hơn nhiều so với E và F.Thông tin chi tiết
Thiết lập môi trường [2019.07.10] MacOS High Sierra 10.13.4 trên Chrome 75.0.3770 [64-bit], Safari 11.1.0 [13604.5.6], Firefox 67.0.0 [64-bit]
- Trên Chrome E [hoạt động 140K mỗi giây] nhanh nhất, B [47K] và F [46K] là thứ hai, A [332] là chậm nhất
- Trên Firefox F [94K] nhanh nhất, sau đó B [80K], D [73K], E [64K], C [21K] chậm nhất là A [466]
- Trên Safari E [207K] là nhanh nhất, sau đó B [89K], F [88K], D [83K], C [25K], chậm nhất là A [509]
Bạn có thể phát lại bài kiểm tra trong máy của bạn ở đây
Đã trả lời ngày 2 tháng 7 năm 2018 lúc 16:57Jul 2, 2018 at 16:57
Kamil Kiełczewskikamil KiełczewskiKamil Kiełczewski
77.7K27 Huy hiệu vàng342 Huy hiệu bạc319 Huy hiệu đồng27 gold badges342 silver badges319 bronze badges
3
Làm thế nào bao gồm HTML trong Java?
var child = document.createElement['div'];
child.innerHTML = str;
child = child.firstChild;
document.getElementById['test'].appendChild[child];
jsFiddle.
Các hướng dẫn của Java đã được viết cho JDK 8 .., Neil's answer is a better solution.
Nhấp vào nút khởi chạy để chạy HTMLDEMO bằng Web Java ™ Start [tải xuống JDK 7 trở lên]. ....Sep 6, 2011 at 22:51
Chỉnh sửa định dạng HTML trong khu vực văn bản ở bên trái và nhấp vào nút "Thay đổi nhãn". ....alex
Xóa thẻ khỏi vùng văn bản ở bên trái ..197 gold badges868 silver badges977 bronze badges
10
Có chuỗi trong HTML không?
var target = document.getElementById['test'];
var str = 'Just some text here
';
var temp = document.createElement['div'];
temp.innerHTML = str;
while [temp.firstChild] {
target.appendChild[temp.firstChild];
}
Nó chỉ là văn bản đơn giản, không có ý nghĩa [mã] được gắn vào nó. Nhưng bạn không thực sự sử dụng các loại chuỗi trong HTML, nhưng nhiều hơn trong các ngôn ngữ kịch bản thực sự khác như JS, PHP hoặc Java, và trong các ngôn ngữ đó, bạn thường phải thoát khỏi nó bằng trích dẫn ["hoặc '].
Cách nối chuỗi chuỗi HTML nhưOct 24, 2011 at 6:02
đến
text inside node
5 với ID
text inside node
6?Chris Calo[BTW
7 không được chấp nhận.]7 gold badges47 silver badges61 bronze badges
text inside node
0
hỏi ngày 6 tháng 9 năm 2011 lúc 22:48
Šime Vidasšime vidas
177K60 Huy hiệu vàng279 Huy hiệu bạc377 Huy hiệu đồngOct 21, 2011 at 17:39
Màn biểu diễnhsivonen
8 [e] nhanh hơn 2 lần so với các giải pháp khác trên Chrome và Safari, ____ 19 [f] là nhanh nhất trên Firefox.
text inside node
0 [b] [không nhầm lẫn với el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
1 [a]] là giải pháp nhanh thứ hai trên tất cả các trình duyệt và nó tiện dụng hơn nhiều so với E và F.1 gold badge30 silver badges35 bronze badgesel.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
1
Thông tin chi tiếtHack:
document.body.innerHTML = string_of_html;
// Append it instead
document.body.innerHTML += string_of_html;
0Thiết lập môi trường [2019.07.10] MacOS High Sierra 10.13.4 trên Chrome 75.0.3770 [64-bit], Safari 11.1.0 [13604.5.6], Firefox 67.0.0 [64-bit]:
Trên Chrome E [hoạt động 140K mỗi giây] nhanh nhất, B [47K] và F [46K] là thứ hai, A [332] là chậm nhất
Trên Firefox F [94K] nhanh nhất, sau đó B [80K], D [73K], E [64K], C [21K] chậm nhất là A [466]
Trên Safari E [207K] là nhanh nhất, sau đó B [89K], F [88K], D [83K], C [25K], chậm nhất là A [509] //js.do/HeavyMetalCookies/quick_hack
Bạn có thể phát lại bài kiểm tra trong máy của bạn ở đây
document.body.innerHTML = string_of_html;
// Append it instead
document.body.innerHTML += string_of_html;
1Đã trả lời ngày 2 tháng 7 năm 2018 lúc 16:57
điều này có chấp nhận được không?
- Nhưng, câu trả lời của Neil là một giải pháp tốt hơn.
- Đã trả lời ngày 6 tháng 9 năm 2011 lúc 22:51
Alexalex
469K197 Huy hiệu vàng868 Huy hiệu bạc977 Huy hiệu ĐồngAug 20, 2018 at 9:10
Ý tưởng là sử dụng
document.body.innerHTML = string_of_html;
// Append it instead
document.body.innerHTML += string_of_html;
8 trên một yếu tố trung gian và sau đó di chuyển tất cả các nút con của nó đến nơi bạn thực sự muốn chúng qua el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
3.KANJICODERĐiều này tránh xóa bỏ mọi trình xử lý sự kiện trên
4 nhưng vẫn cho phép bạn nối một chuỗi HTML.28 silver badges16 bronze badgesel.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
Đã trả lời ngày 24 tháng 10 năm 2011 lúc 6:02
let dom = new DOMParser[]
.parseFromString[string_of_html, 'text/html'];
4Chris Calochris Calo
7.1777 Huy hiệu vàng47 Huy hiệu bạc61 Huy hiệu ĐồngSep 6, 2011 at 22:56
Cách đúng là sử dụng
document.body.innerHTML = string_of_html;
// Append it instead
document.body.innerHTML += string_of_html;
9. Trong Firefox sớm hơn 8, bạn có thể quay lại bằng cách sử dụng el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
6 nếu el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
7 của bạn không chứa thẻ el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
8.Nick BruntNếu
7 của bạn chứa các thẻ el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
8, bạn cần xóa các phần tử el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
8 khỏi đoạn được trả về bởi el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
2 trước khi chèn đoạn. Nếu không, các tập lệnh sẽ chạy. [let dom = new DOMParser[]
.parseFromString[string_of_html, 'text/html'];
9 Marks Scripts không thể chối cãi.]8 gold badges50 silver badges82 bronze badgesdocument.body.innerHTML = string_of_html;
// Append it instead
document.body.innerHTML += string_of_html;
5
Đã trả lời ngày 21 tháng 10 năm 2011 lúc 17:39
document.body.innerHTML = string_of_html;
// Append it instead
document.body.innerHTML += string_of_html;
2HsivonenhsivonenFeb 6, 2018 at 20:59
1
7,7881 Huy hiệu vàng 30 Huy hiệu bạc35 Huy hiệu Đồng
Hack nhanh:
document.body.innerHTML = string_of_html;
// Append it instead
document.body.innerHTML += string_of_html;
3Trường hợp sử dụng:
1: Lưu dưới dạng tệp .html và chạy trong Chrome hoặc Firefox hoặc Edge. [Tức là sẽ không hoạt động]
2: Sử dụng trong //js.do
document.body.innerHTML = string_of_html;
// Append it instead
document.body.innerHTML += string_of_html;
4document.body.innerHTML = string_of_html;
// Append it instead
document.body.innerHTML += string_of_html;
5Trong hành động: //js.do/eavymetalcookies/quick_hackAug 2, 2018 at 8:36
Bị phá vỡ với nhận xét:
document.body.innerHTML = string_of_html;
// Append it instead
document.body.innerHTML += string_of_html;
6Đã trả lời ngày 14 tháng 10 lúc 12:04Oct 14 at 12:04
Ngắn nhất - 18 ký tự [không nhầm lẫn
1 [đề cập bởi OP] với el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
6 chi tiết thêm ở đây] - 18 chars [not confuse let dom = new DOMParser[]
.parseFromString[string_of_html, 'text/html'];
el.insertAdjacentHTML['beforebegin', string_of_html];
el.insertAdjacentHTML['afterbegin', string_of_html];
el.insertAdjacentHTML['beforeend', string_of_html];
el.insertAdjacentHTML['afterend', string_of_html];
1 [mention by OP] with let dom = new DOMParser[]
.parseFromString[string_of_html, 'text/html'];
6 more details here]document.body.innerHTML = string_of_html;
// Append it instead
document.body.innerHTML += string_of_html;
7Đã trả lời ngày 13 tháng 2 năm 2020 lúc 17:10Feb 13, 2020 at 17:10
Kamil Kiełczewskikamil KiełczewskiKamil Kiełczewski
77.7K27 Huy hiệu vàng342 Huy hiệu bạc319 Huy hiệu đồng27 gold badges342 silver badges319 bronze badges
1