innerText和innerHTML 一些問題分析
更新時間:2009年05月18日 00:24:46 作者:
盡管DOM帶來了動態(tài)修改文檔的能力,但對開發(fā)人員來說,這還不夠。IE4.0為所有的元素引入了兩個特性,以更方便的進行文檔操作,這兩個特性是innerText和innerHTML。
其中innerText特性用來修改起始標簽和結(jié)束標簽之間的文本的。例如,假設(shè)有個空的<div/>元素,希望將其變成<div>New text for the div.</div>。用DOM實現(xiàn)時,要這么做:
oDiv.appendChild(document.createTextNode("New text for the div."));
這段代碼并不難讀,但是很冗長。如果使用innerText,只要這么做:
oDiv.innerText = "New text for the div.";
使用innerText,代碼更加簡潔,并且更容易理解。另外,innerText會自動將小于號、大于號、引號和&符號進行HTML編碼,所有是毫不需當心特殊字符:
oDiv.innerText = "New text for the <div/>.";
這一行代碼的執(zhí)行結(jié)果是<div>New text for the <div/>.</div>。但如何一定要再元素中包含HTML標簽?zāi)兀窟@就是innerHTML所要解決的問題。
應(yīng)用innerHTML特性,可以直接給元素分配HTML字符串,而不需考慮使用DOM方法來創(chuàng)建元素。例如,假設(shè)一個空<div/>要變成<div><strong>Hello</strong><em>World</em></div>。使用DOM,要用下面的代碼:
var oStrong = document.createElement("strong');
oStrong.appendChild(document.createTextNode("hello"));
var oEm = document.createElement("em");
oEm.appendChild(document.createTextNode("World"));
oDiv.appendChild(oStrong);
oDiv.appendChild(document.createTextNode(""));
oDiv.appendChild(oEm);
而使用innerHTML,代碼就變成:
oDiv.innerHTML = "<strong>Hello</strong><em>World</em>";
七行代碼一下就變成一行,這就是innerHML的威力!
還可以使用innerText和innerHTML來獲取元素的內(nèi)容。如果元素只包含文本,那么innerText和innerHTML返回相同的值。但是,如果同時包含文本和其他元素,innerText將只返回文本的表示,而innerHTML,將返回所有元素和文本的HTML代碼。下面的表格列出了根據(jù)特定代碼innerText和innerHTML返回的不同值。
后,通過將innerText賦值給它自身,表示從指定的元素中刪除所有的HTML標簽。
oDiv.innerText = oDiv.innerText;
oDiv.appendChild(document.createTextNode("New text for the div."));
這段代碼并不難讀,但是很冗長。如果使用innerText,只要這么做:
oDiv.innerText = "New text for the div.";
使用innerText,代碼更加簡潔,并且更容易理解。另外,innerText會自動將小于號、大于號、引號和&符號進行HTML編碼,所有是毫不需當心特殊字符:
oDiv.innerText = "New text for the <div/>.";
這一行代碼的執(zhí)行結(jié)果是<div>New text for the <div/>.</div>。但如何一定要再元素中包含HTML標簽?zāi)兀窟@就是innerHTML所要解決的問題。
應(yīng)用innerHTML特性,可以直接給元素分配HTML字符串,而不需考慮使用DOM方法來創(chuàng)建元素。例如,假設(shè)一個空<div/>要變成<div><strong>Hello</strong><em>World</em></div>。使用DOM,要用下面的代碼:
var oStrong = document.createElement("strong');
oStrong.appendChild(document.createTextNode("hello"));
var oEm = document.createElement("em");
oEm.appendChild(document.createTextNode("World"));
oDiv.appendChild(oStrong);
oDiv.appendChild(document.createTextNode(""));
oDiv.appendChild(oEm);
而使用innerHTML,代碼就變成:
oDiv.innerHTML = "<strong>Hello</strong><em>World</em>";
七行代碼一下就變成一行,這就是innerHML的威力!
還可以使用innerText和innerHTML來獲取元素的內(nèi)容。如果元素只包含文本,那么innerText和innerHTML返回相同的值。但是,如果同時包含文本和其他元素,innerText將只返回文本的表示,而innerHTML,將返回所有元素和文本的HTML代碼。下面的表格列出了根據(jù)特定代碼innerText和innerHTML返回的不同值。
| 代碼 | innerText | innerHTML |
| <div>Hello world</div> | "Hello world" | "Hello world" |
| <div><b>Hello</b>world</div> | "Hello world" | "<b>Hello</b>world" |
| <div><span></span></div> | "" | "<span></span>" |
oDiv.innerText = oDiv.innerText;
您可能感興趣的文章:
- innerhtml用法 innertext用法 以及innerHTML與innertext的區(qū)別
- javascript innerHTML、outerHTML、innerText、outerText的區(qū)別
- javascript innerText和innerHtml應(yīng)用
- innerText innerHTML的用法以及注意事項 [推薦]
- 詳談innerHTML innerText的使用和區(qū)別
- innerHTML,outerHTML,innerText,outerText的用法及區(qū)別解析
- JavaScript中innerHTML,innerText,outerHTML的用法及區(qū)別
- js中textContent、innerText和innerHTML的用法以及區(qū)別
- innerHTML,outerHTML,innerTEXT三者之間的區(qū)別
- 前端innerHTML和innerText到底有啥區(qū)別及避坑指南(新人別再搞混了!)
相關(guān)文章
Javacript實現(xiàn)顏色梯度變化和漸變的效果代碼
用js對導航欄的顏色做了梯度的變化處理,通過處理..獲取兩種顏色在變化時的各種顏色字符串,并且字符串的個數(shù),即獲取的頻率可以調(diào)節(jié)2013-05-05
JavaScript數(shù)據(jù)結(jié)構(gòu)之棧實例用法
在本篇文章里小編給大家分享了關(guān)于JavaScript數(shù)據(jù)結(jié)構(gòu)之棧實例用法內(nèi)容,有興趣的朋友們學習下。2019-01-01
關(guān)于JavaScript回調(diào)函數(shù)的深入理解
由于函數(shù)是一等對象,我們可以把一個函數(shù)作為參數(shù)傳遞給另一個函數(shù),然后在那個函數(shù)內(nèi)執(zhí)行,至也可以被那個函數(shù)返回,然后再執(zhí)行,這篇文章主要給大家介紹了關(guān)于JavaScript回調(diào)函數(shù)的深入理解,需要的朋友可以參考下2021-06-06
JS組件封裝之監(jiān)聽localStorage的變化
這篇文章主要介紹了JS組件封裝之監(jiān)聽localStorage的變化,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09
JavaScript獲取DOM元素的11種方法總結(jié)
這篇文章主要介紹了JavaScript獲取DOM元素的11種方法總結(jié),本文用分4大類11個方法總結(jié)如何獲取DOM元素,需要的朋友可以參考下2015-04-04

