document.createTextNode(data)
引數 data 表示字串。var element = document.createElement("div"); element.className = "red"; document.body.appendChild(element);
//獲取指定元素包含的文字 //引數:e 表示指定元素 //返回包含的所有文字,包括子元素中包含的文字 function text(e) { var s = ""; var e = e.childNodes || e; //判斷元素是否包含子節點 for (var i = 0; i < e.length; i ++) { //遍歷所有子節點 //通過遞回遍歷所有元素的子節點 s += e[i].nodeType != 1 ? e[i].nodeValue : text(e[i].childNodes); } return s; }在上面函數中,通過遞回函數檢索指定元素的所有子節點,然後判斷每個子節點的型別,如果不是元素,則讀取該節點的值,否則繼續遞回遍歷該元素包含的所有子節點。
<div id="div1"> <span class="red">div</span> 元素 </div> <script> var div = document.getElementById("div1"); var s = text(div); //呼叫讀取元素的文字通用方法 console.log(s); //返回字串“div 元素” </script>這個通用方法不僅可以在 HTML DOM 中使用,也可以在 XML DOM 文件中工作,並相容不同的瀏覽器。
<div id="div1"> <style type="text/css">p {color : red;}</style> <p><span>div</span>元素</p> </div> <script> var div = document.getElementById("div1"); var s = div.innerHTML; console.log(s); </script>
<script> function tableInnerHTML () { var i, h = ['<table border="1" width="100%">']; h.push('<thead>'); h.push('<tr><th>id</th><th>yes?</th><th>name</th><th>url</th><th>action</th></tr>'); h.push('</thead>'); h.push('<tbody>'); for (i=1;i<=1000;i++) { h.push('<tr><td>'); h.push(i); h.push('</td><td>'); h.push('And the answer is...' + (i % 2 ? 'yes' : 'no')); h.push('</td><td>'); h.push('my name is #' + i); h.push('</td><td>'); h.push('<a href="http://example.org/' + i + '.html">http://example.org/' + i + '.html</a>'); h.push('</td><td>'); h.push('<ul>'); h.push('<li><a href="edit.php?id=' + i + '">edit</a></li>'); h.push('<li><a href="delete.php?id="' + i + '-id001">delete</a></li>'); h.push('</ul>'); h.push('</td>'); h.push('</tr>'); } h.push('</tbody>'); h.push('</table>'); document.getElementById("here").innerHTML = h.join(''); </script> <div id="here"></div> <script> tableInnerHTML(); </script>如果通過 DOM 的document.createElement() 和 document.createTextNode() 方法建立同樣的表格,程式碼會非常長。在一個效能苛刻的操作中更新一大塊 HTML 頁面,innerHTML 在大多瀏覽器中執行的更快。
<h1>單擊回答問題</h1> <ul> <li>你叫什麼?</li> <li>你喜歡 JS 嗎?</li> </ul> <script> var ul = document.getElementsByTagName("ul")[0]; var lis = ul.getElementsByTagName("li"); lis[0].onclick = function () { this.innerHTML = "<h2>我叫 C語言中文網</h2>"; } lis[1].onclick = function () { this.outerHTML = "<h2>當然喜歡</h2>"; } </script>演示效果如下: