今天要來學習的是如何透過JS在網頁上建立一個 HTML 的元素。
如何使用 Document.createElement()
以及 Element.innierHTML
兩種方式達成目的
事不宜遲,趕緊往下看吧!
Document.createElement()
用途可以在 HTML 中透過 Document.createElement()
這個方法指定要在哪個 HTML 元素底下建立另一個 HTML 元素。
Document.createElement()
關於怎麼使用,就直接看看測試的例子吧!
<ul>
元素底下新增 <li>
元素<ul class="list"></ul>
const list = document.querySelector('.list');
for (let i = 1; i <= 5; i++) {
const li = document.createElement('LI');
li.textContent = `這是第${i}個 LI 元素`;
list.appendChild(li);
}
透過 textContent
將文字內容新增到 <li>
元素中
而 appendChild()
用於將一個節點新增到指定父節點的子節點中
執行後可以得到5個在 <ul>
裡面新建立的 <li>
元素
div
底下新增 <p>
、 <a>
的 HTML 標籤<div class="container"></div>
const container = document.querySelector('.container');
const paragraph = document.createElement('P');
const link = document.createElement('A');
paragraph.textContent = 'Lorem ipsum dolor sit amet.';
paragraph.setAttribute('class', 'text');
container.appendChild(paragraph);
link.textContent = 'This is a link';
link.setAttribute('class', 'link');
link.setAttribute('href', '#');
container.appendChild(link);
這裡在 div
底下新增了 <p>
、 <a>
兩個元素
並透過 setAttribute()
在這兩個元素上新增屬性,如下圖:
Element.innerHTML
用途透過字串的格式,將自定義的 HTML 格式渲染在 HTML 頁面上。
但這個作法會讓原本 HTML 上的元素都被刪除並以自定義的格式取代。
Element.innerHTML
關於怎麼使用,就直接看看測試的例子吧!
<ul>
元素底下新增 <li>
元素<ul class="list">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
const list = document.querySelector('.list');
let content = '';
for (let i = 1; i <= 5; i++) {
const domString = `<li>這是第${i}個 LI 元素</li>`;
content += domString;
}
list.innerHTML = content;
從程式碼中可以知道原本 <ul>
裡面有三個 <li>
元素,但建立了5個 <li>
元素並使用 Element.innierHTML
渲染到頁面上後,可以看到原本的會被新建立的取代。
關於 JavaScript 動態建立 HTML 元素的幾種方式就先到這裡囉~
謝謝分享,在這邊補充一下
appendChild()跟innerHTML在效能上的差異,
在節點不多時不明顯,當節點愈來愈多的時候,
會看到innerHTML明顯效能較差...
http://www.web3d.url.tw/ITHELP/JS_20191006a/index.htm
非常謝謝你的補充,學習了~~