DOM ä¿®æ¹æ¯å建â宿¶â页é¢çå ³é®ã
å¨è¿éï¼æä»¬å°ä¼çå°å¦ä½â峿¶âå建æ°å ç´ å¹¶ä¿®æ¹ç°æé¡µé¢å 容ã
ä¾åï¼å±ç¤ºä¸æ¡æ¶æ¯
让æä»¬ä½¿ç¨ä¸ä¸ªç¤ºä¾è¿è¡æ¼ç¤ºãæä»¬å°å¨é¡µé¢ä¸æ·»å 䏿¡æ¯ alert æ´å¥½ççæ¶æ¯ã
å®çå¤è§å¦ä¸ï¼
<style>
.alert {
padding: 15px;
border: 1px solid #d6e9c6;
border-radius: 4px;
color: #3c763d;
background-color: #dff0d8;
}
</style>
<div class="alert">
<strong>Hi there!</strong> You've read an important message.
</div>
è¿æ¯ä¸ä¸ª HTML 示ä¾ãç°å¨ï¼è®©æä»¬ä½¿ç¨ JavaScript å建ä¸ä¸ªç¸åç divï¼åè®¾æ ·å¼å·²ç»å¨ HTML/CSS æä»¶ä¸ï¼ã
å建ä¸ä¸ªå ç´
è¦å建 DOM èç¹ï¼è¿éæä¸¤ç§æ¹æ³ï¼
document.createElement(tag)-
ç¨ç»å®çæ ç¾å建ä¸ä¸ªæ° å ç´ èç¹ï¼element nodeï¼ï¼
let div = document.createElement('div'); document.createTextNode(text)-
ç¨ç»å®çææ¬å建ä¸ä¸ª ææ¬èç¹ï¼
let textNode = document.createTextNode('Here I am');
大夿°æ
åµä¸ï¼æä»¬éè¦ä¸ºæ¤æ¶æ¯å建å div è¿æ ·çå
ç´ èç¹ã
åå»ºä¸æ¡æ¶æ¯
å建ä¸ä¸ªæ¶æ¯ div å为 3 个æ¥éª¤ï¼
// 1. å建 <div> å
ç´
let div = document.createElement('div');
// 2. å°å
ç´ ç类设置为 "alert"
div.className = "alert";
// 3. å¡«å
æ¶æ¯å
容
div.innerHTML = "<strong>Hi there!</strong> You've read an important message.";
æä»¬å·²ç»å建äºè¯¥å
ç´ ãä½å°ç®å为æ¢ï¼å®è¿åªæ¯å¨ä¸ä¸ªå为 div çåéä¸ï¼å°æªå¨é¡µé¢ä¸ãæä»¥æä»¬æ æ³å¨é¡µé¢ä¸çå°å®ã
æå ¥æ¹æ³
为äºè®© div æ¾ç¤ºåºæ¥ï¼æä»¬éè¦å°å
¶æå
¥å° document ä¸çæå¤ãä¾å¦ï¼éè¿ document.body å°å
¶æå
¥å° <body> å
ç´ éã
å¯¹æ¤æä¸ä¸ªç¹æ®çæ¹æ³ appendï¼document.body.append(div)ã
è¿æ¯å®æ´ä»£ç ï¼
<style>
.alert {
padding: 15px;
border: 1px solid #d6e9c6;
border-radius: 4px;
color: #3c763d;
background-color: #dff0d8;
}
</style>
<script>
let div = document.createElement('div');
div.className = "alert";
div.innerHTML = "<strong>Hi there!</strong> You've read an important message.";
document.body.append(div);
</script>
å¨è¿ä¸ªä¾åä¸ï¼æä»¬å¯¹ document.body è°ç¨äº append æ¹æ³ãä¸è¿æä»¬å¯ä»¥å¨å
¶ä»ä»»ä½å
ç´ ä¸è°ç¨ append æ¹æ³ï¼ä»¥å°å¦å¤ä¸ä¸ªå
ç´ æ¾å
¥å°éé¢ãä¾å¦ï¼éè¿è°ç¨ div.append(anotherElement)ï¼æä»¬ä¾¿å¯ä»¥å¨ <div> æ«å°¾æ·»å ä¸äºå
容ã
è¿éæ¯æ´å¤çå ç´ æå ¥æ¹æ³ï¼ææäºä¸åçæå ¥ä½ç½®ï¼
node.append(...nodes or strings)ââ å¨nodeæ«å°¾ æå ¥èç¹æå符串ï¼node.prepend(...nodes or strings)ââ å¨nodeå¼å¤´ æå ¥èç¹æå符串ï¼node.before(...nodes or strings)ââ å¨nodeåé¢ æå ¥èç¹æå符串ï¼node.after(...nodes or strings)ââ å¨nodeåé¢ æå ¥èç¹æå符串ï¼node.replaceWith(...nodes or strings)ââ å°nodeæ¿æ¢ä¸ºç»å®çèç¹æå符串ã
è¿äºæ¹æ³çåæ°å¯ä»¥æ¯ä¸ä¸ªè¦æå ¥çä»»æç DOM èç¹åè¡¨ï¼æè ææ¬å符串ï¼ä¼è¢«èªå¨è½¬æ¢æææ¬èç¹ï¼ã
让æä»¬å¨å®é åºç¨ä¸çä¸çã
ä¸é¢æ¯ä½¿ç¨è¿äºæ¹æ³å°å表项添å å°å表ä¸ï¼ä»¥åå°ææ¬æ·»å å°å表åé¢ååé¢ç示ä¾ï¼
<ol id="ol">
<li>0</li>
<li>1</li>
<li>2</li>
</ol>
<script>
ol.before('before'); // å°å符串 "before" æå
¥å° <ol> åé¢
ol.after('after'); // å°å符串 "after" æå
¥å° <ol> åé¢
let liFirst = document.createElement('li');
liFirst.innerHTML = 'prepend';
ol.prepend(liFirst); // å° liFirst æå
¥å° <ol> çæå¼å§
let liLast = document.createElement('li');
liLast.innerHTML = 'append';
ol.append(liLast); // å° liLast æå
¥å° <ol> çææ«å°¾
</script>
è¿å¼ å¾çç´è§å°æ¾ç¤ºäºè¿äºæ¹æ³æåçå·¥ä½ï¼
å æ¤ï¼æç»å表å°ä¸ºï¼
before
<ol id="ol">
<li>prepend</li>
<li>0</li>
<li>1</li>
<li>2</li>
<li>append</li>
</ol>
after
å¦ä¸æè¿°ï¼è¿äºæ¹æ³å¯ä»¥å¨å个è°ç¨ä¸æå ¥å¤ä¸ªèç¹åè¡¨åææ¬ç段ã
ä¾å¦ï¼å¨è¿éæå ¥äºä¸ä¸ªå符串åä¸ä¸ªå ç´ ï¼
<div id="div"></div>
<script>
div.before('<p>Hello</p>', document.createElement('hr'));
</script>
请注æï¼è¿éçæåé½è¢«âä½ä¸ºææ¬âæå
¥ï¼è䏿¯âä½ä¸º HTML 代ç âãå æ¤å <ã> è¿æ ·ç符å·é½ä¼è¢«ä½è½¬ä¹å¤çæ¥ä¿è¯æ£ç¡®æ¾ç¤ºã
æä»¥ï¼æç»ç HTML 为ï¼
<p>Hello</p>
<hr>
<div id="div"></div>
æ¢å¥è¯è¯´ï¼å符串被以ä¸ç§å®å
¨çæ¹å¼æå
¥å°é¡µé¢ä¸ï¼å°±å elem.textContent æåç䏿 ·ã
æä»¥ï¼è¿äºæ¹æ³åªè½ç¨æ¥æå ¥ DOM èç¹æææ¬çæ®µã
ä½å¦ææä»¬æ³è¦å°å
容âä½ä¸º HTML ä»£ç æå
¥âï¼è®©å
容ä¸çæææ ç¾åå
¶ä»ä¸è¥¿é½åä½¿ç¨ elem.innerHTML æè¡¨ç°çææä¸æ ·ï¼é£åºè¯¥æä¹åå¢ï¼
insertAdjacentHTML/Text/Element
为æ¤ï¼æä»¬å¯ä»¥ä½¿ç¨å¦ä¸ä¸ªé常éç¨çæ¹æ³ï¼elem.insertAdjacentHTML(where, html)ã
è¯¥æ¹æ³ç第ä¸ä¸ªåæ°æ¯ä»£ç åï¼code wordï¼ï¼æå®ç¸å¯¹äº elem çæå
¥ä½ç½®ãå¿
须为以ä¸ä¹ä¸ï¼
"beforebegin"ââ å°htmlæå ¥å°elemä¹åï¼"afterbegin"ââ å°htmlæå ¥å°elemå¼å¤´ï¼"beforeend"ââ å°htmlæå ¥å°elemæ«å°¾ï¼"afterend"ââ å°htmlæå ¥å°elemä¹åã
第äºä¸ªåæ°æ¯ HTML å符串ï¼è¯¥å符串ä¼è¢«âä½ä¸º HTMLâ æå ¥ã
ä¾å¦ï¼
<div id="div"></div>
<script>
div.insertAdjacentHTML('beforebegin', '<p>Hello</p>');
div.insertAdjacentHTML('afterend', '<p>Bye</p>');
</script>
â¦â¦å°å¯¼è´ï¼
<p>Hello</p>
<div id="div"></div>
<p>Bye</p>
è¿å°±æ¯æä»¬å¯ä»¥å¨é¡µé¢ä¸éå ä»»æ HTML çæ¹å¼ã
è¿æ¯æå ¥åä½ç示æå¾ï¼
æä»¬å¾å®¹æå°±ä¼æ³¨æå°è¿å¼ å¾çåä¸ä¸å¼ å¾ççç¸ä¼¼ä¹å¤ãæå ¥ç¹å®é 䏿¯ç¸åçï¼ä½æ¤æ¹æ³æå ¥çæ¯ HTMLã
è¿ä¸ªæ¹æ³æä¸¤ä¸ªå å¼ï¼
elem.insertAdjacentText(where, text)ââ è¯æ³ä¸æ ·ï¼ä½æ¯å°textå符串âä½ä¸ºææ¬âæå ¥è䏿¯ä½ä¸º HTMLï¼elem.insertAdjacentElement(where, elem)ââ è¯æ³ä¸æ ·ï¼ä½æ¯æå ¥çæ¯ä¸ä¸ªå ç´ ã
å®ä»¬çåå¨ä¸»è¦æ¯ä¸ºäºä½¿è¯æ³âç»ä¸âãå®é
ä¸ï¼å¤§å¤æ°æ¶ååªä½¿ç¨ insertAdjacentHTMLãå 为对äºå
ç´ åææ¬ï¼æä»¬æ append/prepend/before/after æ¹æ³ ââ å®ä»¬ä¹å¯ä»¥ç¨äºæå
¥èç¹/ææ¬çæ®µï¼ä½åèµ·æ¥æ´çã
æä»¥ï¼ä¸é¢æ¯æ¾ç¤ºä¸æ¡æ¶æ¯çå¦ä¸ç§åä½ï¼
<style>
.alert {
padding: 15px;
border: 1px solid #d6e9c6;
border-radius: 4px;
color: #3c763d;
background-color: #dff0d8;
}
</style>
<script>
document.body.insertAdjacentHTML("afterbegin", `<div class="alert">
<strong>Hi there!</strong> You've read an important message.
</div>`);
</script>
èç¹ç§»é¤
æ³è¦ç§»é¤ä¸ä¸ªèç¹ï¼å¯ä»¥ä½¿ç¨ node.remove()ã
让æä»¬çæ¶æ¯å¨ä¸ç§åæ¶å¤±ï¼
<style>
.alert {
padding: 15px;
border: 1px solid #d6e9c6;
border-radius: 4px;
color: #3c763d;
background-color: #dff0d8;
}
</style>
<script>
let div = document.createElement('div');
div.className = "alert";
div.innerHTML = "<strong>Hi there!</strong> You've read an important message.";
document.body.append(div);
setTimeout(() => div.remove(), 1000);
</script>
请注æï¼å¦ææä»¬è¦å°ä¸ä¸ªå ç´ ç§»å¨ å°å¦ä¸ä¸ªå°æ¹ï¼åæ éå°å ¶ä»åæ¥çä½ç½®ä¸å é¤ã
æææå ¥æ¹æ³é½ä¼èªå¨ä»æ§ä½ç½®å é¤è¯¥èç¹ã
ä¾å¦ï¼è®©æä»¬è¿è¡å ç´ äº¤æ¢ï¼
<div id="first">First</div>
<div id="second">Second</div>
<script>
// æ éè°ç¨ remove
second.after(first); // è·å #secondï¼å¹¶å¨å
¶å颿å
¥ #first
</script>
å éèç¹ï¼cloneNode
å¦ä½åæå ¥ä¸æ¡ç±»ä¼¼çæ¶æ¯ï¼
æä»¬å¯ä»¥å建ä¸ä¸ªå½æ°ï¼å¹¶å°ä»£ç æ¾å¨å
¶ä¸ã使¯å¦ä¸ç§æ¹æ³æ¯ å
é ç°æç divï¼å¹¶ä¿®æ¹å
¶ä¸çææ¬ï¼å¦æéè¦ï¼ã
彿们æä¸ä¸ªå¾å¤§çå ç´ æ¶ï¼å éçæ¹å¼å¯è½æ´å¿«æ´ç®åã
è°ç¨ elem.cloneNode(true) æ¥å建å
ç´ çä¸ä¸ªâæ·±âå
é ââ å
·æææç¹æ§ï¼attributeï¼ååå
ç´ ã妿æä»¬è°ç¨ elem.cloneNode(false)ï¼é£å
éå°±ä¸å
æ¬åå
ç´ ã
ä¸ä¸ªæ·è´æ¶æ¯ç示ä¾ï¼
<style>
.alert {
padding: 15px;
border: 1px solid #d6e9c6;
border-radius: 4px;
color: #3c763d;
background-color: #dff0d8;
}
</style>
<div class="alert" id="div">
<strong>Hi there!</strong> You've read an important message.
</div>
<script>
let div2 = div.cloneNode(true); // å
éæ¶æ¯
div2.querySelector('strong').innerHTML = 'Bye there!'; // ä¿®æ¹å
é
div.after(div2); // å¨å·²æç div åæ¾ç¤ºå
é
</script>
DocumentFragment
DocumentFragment æ¯ä¸ä¸ªç¹æ®ç DOM èç¹ï¼ç¨ä½æ¥ä¼ éèç¹å表çå
è£
å¨ï¼wrapperï¼ã
æä»¬å¯ä»¥åå ¶éå å ¶ä»èç¹ï¼ä½æ¯å½æä»¬å°å ¶æå ¥æä¸ªä½ç½®æ¶ï¼åä¼æå ¥å ¶å 容ã
ä¾å¦ï¼ä¸é¢è¿æ®µä»£ç ä¸ç getListContent ä¼çæå¸¦æ <li> å表项ççæ®µï¼ç¶åå°å
¶æå
¥å° <ul> ä¸ï¼
<ul id="ul"></ul>
<script>
function getListContent() {
let fragment = new DocumentFragment();
for(let i=1; i<=3; i++) {
let li = document.createElement('li');
li.append(i);
fragment.append(li);
}
return fragment;
}
ul.append(getListContent()); // (*)
</script>
请注æï¼å¨æåä¸è¡ (*) æä»¬éå äº DocumentFragmentï¼ä½æ¯å®å ul âè为ä¸ä½ï¼blends inï¼âäºï¼æä»¥æç»çææ¡£ç»æåºè¯¥æ¯ï¼
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
DocumentFragment å¾å°è¢«æ¾å¼ä½¿ç¨ã妿å¯ä»¥æ¹ä¸ºè¿åä¸ä¸ªèç¹æ°ç»ï¼é£ä¸ºä»ä¹è¿è¦éå å°ç¹æ®ç±»åçèç¹ä¸å¢ï¼éå示ä¾ï¼
<ul id="ul"></ul>
<script>
function getListContent() {
let result = [];
for(let i=1; i<=3; i++) {
let li = document.createElement('li');
li.append(i);
result.push(li);
}
return result;
}
ul.append(...getListContent()); // append + "..." operator = friends!
</script>
æä»¬ä¹æä»¥æå° DocumentFragmentï¼ä¸»è¦æ¯å 为å®ä¸é¢æä¸äºæ¦å¿µï¼ä¾å¦ template å
ç´ ï¼æä»¬å°å¨ä»¥å讨论ã
èå¼ç insert/remove æ¹æ³
ç±äºåå²åå ï¼è¿åå¨âèå¼âç DOM æä½æ¹æ³ã
è¿äºæ¹æ³æ¥èªçæ£çè¿å¤æ¶ä»£ãå¦ä»ï¼æ²¡æçç±å使ç¨å®ä»¬äºï¼å ä¸ºè¯¸å¦ appendï¼prependï¼beforeï¼afterï¼removeï¼replaceWith è¿äºç°ä»£æ¹æ³æ´å çµæ´»ã
æä»¬å¨è¿å¿ååºè¿äºæ¹æ³çå¯ä¸åå æ¯ï¼ä½ å¯è½ä¼å¨è®¸å¤èæ¬ä¸éå°å®ä»¬ã
parentElem.appendChild(node)-
å°
nodeéå 为parentElemçæåä¸ä¸ªåå ç´ ãä¸é¢è¿ä¸ªç¤ºä¾å¨
<ol>çæ«å°¾æ·»å äºä¸ä¸ªæ°ç<li>ï¼<ol id="list"> <li>0</li> <li>1</li> <li>2</li> </ol> <script> let newLi = document.createElement('li'); newLi.innerHTML = 'Hello, world!'; list.appendChild(newLi); </script> parentElem.insertBefore(node, nextSibling)-
å¨
parentElemçnextSiblingåæå ¥nodeãä¸é¢è¿æ®µä»£ç å¨ç¬¬äºä¸ª
<li>åæå ¥äºä¸ä¸ªæ°çå表项ï¼<ol id="list"> <li>0</li> <li>1</li> <li>2</li> </ol> <script> let newLi = document.createElement('li'); newLi.innerHTML = 'Hello, world!'; list.insertBefore(newLi, list.children[1]); </script>妿è¦å°
newLiæå ¥ä¸ºç¬¬ä¸ä¸ªå ç´ ï¼æä»¬å¯ä»¥è¿æ ·åï¼list.insertBefore(newLi, list.firstChild); parentElem.replaceChild(node, oldChild)-
å°
parentElemçå代ä¸çoldChildæ¿æ¢ä¸ºnodeã parentElem.removeChild(node)-
ä»
parentElemä¸å é¤nodeï¼å设node为parentElemçå代ï¼ãä¸é¢è¿ä¸ªç¤ºä¾ä»
<ol>ä¸å é¤äº<li>ï¼<ol id="list"> <li>0</li> <li>1</li> <li>2</li> </ol> <script> let li = list.firstElementChild; list.removeChild(li); </script>
ææè¿äºæ¹æ³é½ä¼è¿åæå
¥/å é¤çèç¹ãæ¢å¥è¯è¯´ï¼parentElem.appendChild(node) è¿å nodeã使¯é常æä»¬ä¸ä¼ä½¿ç¨è¿åå¼ï¼æä»¬åªæ¯ä½¿ç¨å¯¹åºçæ¹æ³ã
èä¸è âdocument.writeâ
è¿æä¸ä¸ªé常å¤èçåç½é¡µæ·»å å
å®¹çæ¹æ³ï¼document.writeã
è¯æ³å¦ä¸ï¼
<p>Somewhere in the page...</p>
<script>
document.write('<b>Hello from JS</b>');
</script>
<p>The end</p>
è°ç¨ document.write(html) æå³çå° html âå°±å°é©¬ä¸âåå
¥é¡µé¢ãhtml å符串å¯ä»¥æ¯å¨æçæçï¼æä»¥å®å¾çµæ´»ãæä»¬å¯ä»¥ä½¿ç¨ JavaScript å建ä¸ä¸ªå®æ´ç页é¢å¹¶å¯¹å
¶è¿è¡åå
¥ã
è¿ä¸ªæ¹æ³æ¥èªäºæ²¡æ DOMï¼æ²¡ææ åçä¸å¤æ¶æâ¦â¦ãä½è¿ä¸ªæ¹æ³ä¾è¢«ä¿çäºä¸æ¥ï¼å ä¸ºè¿æèæ¬å¨ä½¿ç¨å®ã
ç±äºä»¥ä¸éè¦çéå¶ï¼å¨ç°ä»£èæ¬ä¸æä»¬å¾å°çå°å®ï¼
document.write è°ç¨åªå¨é¡µé¢å è½½æ¶å·¥ä½ã
妿æä»¬ç¨åè°ç¨å®ï¼åç°æææ¡£å 容å°è¢«æ¦é¤ã
ä¾å¦ï¼
<p>After one second the contents of this page will be replaced...</p>
<script>
// 1 ç§åè°ç¨ document.write
// è¿æ¶é¡µé¢å·²ç»å è½½å®æï¼æä»¥å®ä¼æ¦é¤ç°æå
容
setTimeout(() => document.write('<b>...By this.</b>'), 1000);
</script>
å æ¤ï¼å¨æç§ç¨åº¦ä¸è®²ï¼å®å¨âå è½½å®æâé¶æ®µæ¯ä¸å¯ç¨çï¼è¿ä¸æä»¬ä¸é¢ä»ç»çå ¶ä» DOM æ¹æ³ä¸åã
è¿æ¯å®ç缺é·ã
è¿æä¸ä¸ªå¥½å¤ã仿æ¯ä¸è®²ï¼å½å¨æµè§å¨æ£å¨è¯»åï¼âè§£æâï¼ä¼ å
¥ç HTML æ¶è°ç¨ document.write æ¹æ³æ¥åå
¥ä¸äºä¸è¥¿ï¼æµè§å¨ä¼å宿¬æ¥å°±å¨ HTML ææ¬ä¸é£æ ·ä½¿ç¨å®ã
æä»¥å®è¿è¡èµ·æ¥åºå¥çå¿«ï¼å ä¸ºå® ä¸æ¶å DOM ä¿®æ¹ãå®ç´æ¥åå ¥å°é¡µé¢ææ¬ä¸ï¼èæ¤æ¶ DOM å°æªæå»ºã
å æ¤ï¼å¦ææä»¬éè¦å HTML 卿尿·»å 大鿿¬ï¼å¹¶ä¸æä»¬æ£å¤äºé¡µé¢å è½½é¶æ®µï¼å¹¶ä¸é度å¾éè¦ï¼é£ä¹å®å¯è½ä¼æå¸®å©ãä½å®é ä¸ï¼è¿äºè¦æ±å¾å°åæ¶åºç°ãæä»¬å¯ä»¥å¨èæ¬ä¸çå°æ¤æ¹æ³ï¼é常æ¯å 为è¿äºèæ¬å¾æ§ã
æ»ç»
-
å建æ°èç¹çæ¹æ³ï¼
document.createElement(tag)ââ ç¨ç»å®çæ ç¾å建ä¸ä¸ªå ç´ èç¹ï¼document.createTextNode(value)ââ å建ä¸ä¸ªææ¬èç¹ï¼å¾å°ä½¿ç¨ï¼ï¼elem.cloneNode(deep)ââ å éå ç´ ï¼å¦ædeep==trueåä¸å ¶å代ä¸èµ·å éã
-
æå ¥åç§»é¤èç¹çæ¹æ³ï¼
node.append(...nodes or strings)ââ å¨nodeæ«å°¾æå ¥ï¼node.prepend(...nodes or strings)ââ å¨nodeå¼å¤´æå ¥ï¼node.before(...nodes or strings)ââ å¨nodeä¹åæå ¥ï¼node.after(...nodes or strings)ââ å¨nodeä¹åæå ¥ï¼node.replaceWith(...nodes or strings)ââ æ¿æ¢nodeãnode.remove()ââ ç§»é¤nodeã
ææ¬å符串被âä½ä¸ºææ¬âæå ¥ã
-
è¿éè¿æâæ§å¼âçæ¹æ³ï¼
parent.appendChild(node)parent.insertBefore(node, nextSibling)parent.removeChild(node)parent.replaceChild(newElem, node)
è¿äºæ¹æ³é½è¿å
nodeã -
å¨
htmlä¸ç»å®ä¸äº HTMLï¼elem.insertAdjacentHTML(where, html)伿 ¹æ®whereç弿¥æå ¥å®ï¼"beforebegin"ââ å°htmlæå ¥å°elemåé¢ï¼"afterbegin"ââ å°htmlæå ¥å°elemçå¼å¤´ï¼"beforeend"ââ å°htmlæå ¥å°elemçæ«å°¾ï¼"afterend"ââ å°htmlæå ¥å°elemåé¢ã
å¦å¤ï¼è¿æç±»ä¼¼çæ¹æ³ï¼elem.insertAdjacentText å elem.insertAdjacentElementï¼å®ä»¬ä¼æå
¥ææ¬å符串åå
ç´ ï¼ä½å¾å°ä½¿ç¨ã
-
è¦å¨é¡µé¢å è½½å®æä¹åå° HTML éå å°é¡µé¢ï¼
document.write(html)
页é¢å è½½å®æåï¼è¿æ ·çè°ç¨å°ä¼æ¦é¤ææ¡£ãå¤è§äºæ§èæ¬ã
è¯è®º
<code>æ ç¾æå ¥åªæå 个è¯ç代ç ï¼æå ¥å¤è¡ä»£ç å¯ä»¥ä½¿ç¨<pre>æ ç¾ï¼å¯¹äºè¶ è¿ 10 è¡ç代ç ï¼å»ºè®®ä½ ä½¿ç¨æ²ç®±ï¼plnkrï¼JSBinï¼codepenâ¦ï¼