十年專注于品牌網(wǎng)站建設(shè) 十余年專注于網(wǎng)站建設(shè)_小程序開(kāi)發(fā)_APP開(kāi)發(fā),低調(diào)、敢創(chuàng)新、有情懷!
      南昌百恒網(wǎng)絡(luò)微信公眾號(hào) 掃一掃關(guān)注
      小程序
      tel-icon全國(guó)服務(wù)熱線:400-680-9298,0791-88117053
      掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號(hào)
      掃一掃打開(kāi)百恒網(wǎng)絡(luò)微信小程序

      百恒網(wǎng)絡(luò)

      南昌百恒網(wǎng)絡(luò)

      詳細(xì)介紹innerText、innerHTML、outerText、outerHTML使用方法

      百恒網(wǎng)絡(luò) 2016-12-02 9508

      在JavaScript中對(duì)文字編輯也是經(jīng)常,通常標(biāo)簽不復(fù)雜性況下,我們也可以直接對(duì)標(biāo)簽內(nèi)的容進(jìn)行讀取和修改操作,介于兼容性不是很理想前提下,我們先來(lái)了解下相關(guān)的方法及其他瀏覽器中替代的方法,結(jié)合實(shí)例讓大家快掌握及投入到實(shí)際工作中。
      ? ? ? ?1.innerText屬性
      通過(guò)innertText屬性可以操作元素中包含的所有文本內(nèi)容,無(wú)論文本位于子文檔樹中的什么位置。在通過(guò)innerText讀取值時(shí),它會(huì)按照由淺入深的順序,將子文檔樹中的所有文本拼接起來(lái)。以下面的HTML代碼為例:


      ? ? ? ?

      This is aparagraph with a list following it.


      ? ? ? ?

        ? ? ? ?
      • ltem l

      • ? ? ? ?
      • ltem 2

      • ? ? ? ?
      • ltem 3

      • ? ? ? ?


      ? ? ? ?對(duì)于這個(gè)例子中的
      元素而言,其innerText屬性會(huì)返回下列字符串:
      ? ? ? ?This is a paragraph with a list following it.
      ? ? ? ?Item l
      ? ? ? ?Item 2
      ? ? ? ?Item 3
      ? ? ? ?由于不同瀏覽器處理空白符的方式不同,因此輸出的文本可能會(huì)也可能不會(huì)包含原始HTML代碼中的縮進(jìn)。
      使用innerText屬性設(shè)置這個(gè)
      元素的內(nèi)容,則只需一行代碼:
      ? ? ? ?div.innerText="Hello world!;
      ? ? ? ?執(zhí)行這行代碼后,頁(yè)面的HTML代碼就會(huì)變成如下所示:
      ? ? ? ?
      Hello world!

      ? ? ? ?可見(jiàn),設(shè)置innerText屬性移除了先前存在的所有子節(jié)點(diǎn),完全改變了DOM子樹。此外,通過(guò)設(shè)置innerText屬性還可以對(duì)所有出現(xiàn)在文本中的HTML語(yǔ)法字符(小于號(hào)、大干號(hào)、引號(hào)及和號(hào))進(jìn)行編碼。例如,下面的這行代碼:
      ? ? ? ?div.innerText="Hello&welcome, "reader"!";
      ? ? ? ?運(yùn)行之后的結(jié)果如下:
      ? ? ? ?< div id=‘’content">Hello & welcome,<b>" reader"!< /b>

      ? ? ? ?設(shè)置innerText永遠(yuǎn)只會(huì)生成當(dāng)前節(jié)點(diǎn)的一個(gè)子文本節(jié)點(diǎn),而為了確保只生成一個(gè)子文本節(jié)點(diǎn), 就必須要對(duì)文本進(jìn)行HTML編碼。此外,還可利用innerText屬性過(guò)濾掉HTML標(biāo)簽。方法是將 innerText設(shè)置為等于innerText,這樣就可以去掉所有HTML標(biāo)簽,如下所示:
      ? ? ? ?div.innerText=div.innerText:
      ? ? ? ?執(zhí)行這行代碼的結(jié)果就是用原來(lái)的文本替換容器元素中的所有內(nèi)容。 ? ? ? ?在此,南昌網(wǎng)站制作公司百恒網(wǎng)絡(luò)開(kāi)發(fā)工程師提示大家IE、Safari、Opera和Chrome支持innerText屬性。Firefox雖然不支持innerText,但支持作用類似的textContent屬性。textContent是DOM3級(jí)規(guī)定的一個(gè)屬性,而且也得到了Safari、Opera 和Chrome的支持。為了確保跨瀏覽器兼容,有必要像下面這樣通過(guò)函數(shù)來(lái)檢測(cè)可以使用哪個(gè)屬性:
      function getInnerText(element){
      ? ? ? ?return ( typeof element.textContent=="string") ?
      ? ? ? ? ? ? ? element.textContent : element.innerText:
      ? ? ? ?}
      function setInnerText(element, text){
      ? ? ? ?if (typeof element.textContent== "string"){
      ? ? ? ? ? ? ? element.textContent=text:
      ? ? ? ?} else {
      ? ? ? ? ? ? ? element.innerText=text:
      ? ? ? ?}
      }
      ? ? ? ?這兩個(gè)函數(shù)都接受一個(gè)元素,然后檢查這個(gè)元素是不是有textContent屬性。如果有,那么type of element.textContent應(yīng)該是"string";如果沒(méi)有,那么這兩個(gè)函數(shù)就會(huì)改為使用innerText,可以像下面這樣調(diào)用這兩個(gè)函數(shù):
      ? ? ? ?setInnerText( div, "Hello worldl“);
      ? ? ? ?alert( getinnerText (div)); //"Hello world!"
      使用這兩個(gè)函數(shù)可以確保在不同的瀏覽器中使用正確的屬性。
      2.innerHTML屬性
      ? ? ? ?innerHTML與innerText在很多方面都很相似。在讀取信息時(shí),innerHTML返回當(dāng)前元素所有子節(jié)點(diǎn)的HTML表現(xiàn),包括元素、注釋及文本節(jié)點(diǎn)。在寫入信息時(shí),innerHTML會(huì)按照指定的值創(chuàng)建新的DOM子樹,并以該子樹替換當(dāng)前元素的所有子節(jié)點(diǎn)。提到innerHTML與innerText之間最 主要的區(qū)別,無(wú)非就是innerHTML處理的是HTML字符串,而innerText處理的是普通文本字符串。
      以下面的HTML代碼為例:

      This is aparagraph with a list following it.


      ? ? ? ?

        ? ? ? ? ? ? ?
      • ltem l

      • ? ? ? ? ? ? ?
      • ltem 2

      • ? ? ? ? ? ? ?
      • ltem 3

      • ? ? ? ?

      < /div>
      這里面
      元素的innerHTML屬性將返回下列字符串:

      This is aparagraph with a list following it.



        ? ? ? ?
      • ltem l

      • ? ? ? ?
      • ltem 2

      • ? ? ? ?
      • ltem 3


      ? ? ? ?在不同瀏覽器中,innerHTML返回的文本可能會(huì)有所不同。IE和Opera常常把所有標(biāo)簽轉(zhuǎn)換為大寫,而Safari、Chrome和Firefox則以文檔中指定的形式返回HTML-包括空格和縮進(jìn)。不要指望所有瀏覽器都會(huì)返回沒(méi)有絲毫差別的innerHTML值。
      ? ? ? ?在寫入信息時(shí),innerHTML會(huì)將給定的字符串解析為DOM子樹,并用這個(gè)子樹替換所有的子節(jié) 點(diǎn)。由于賦給innerHTML的字符串會(huì)被當(dāng)作HTML,因此其中包含的所有標(biāo)簽都會(huì)按照瀏覽器處理 HTML的標(biāo)準(zhǔn)方式,被轉(zhuǎn)換成對(duì)應(yīng)的元素(同樣,這個(gè)過(guò)程也會(huì)因?yàn)g覽器而異)。如果像下面這樣, 只設(shè)置簡(jiǎn)單的文本,那么結(jié)果就如同設(shè)置innerText -樣:
      ? ? ? ?div.innerHTML="Hello world!":
      ? ? ? ?如果為innerHTML設(shè)置的字符串中包含HTML代碼,結(jié)果可能就會(huì)大不一樣了。區(qū)別就在于innerText會(huì)轉(zhuǎn)義HTML語(yǔ)法字符,而innerHTML會(huì)解析它們。來(lái)看下面的例子:
      ? ? ? ?div.innerHTML="Hello&welcome, \"reader"!";
      ? ? ? ?執(zhí)行這行代碼之后的結(jié)果是:
      ? ? ? ?
      Hello & welcome, " reader"!

      ? ? ? ?在設(shè)置完innerHTML之后,馬上就可以像訪問(wèn)文檔中的其他節(jié)點(diǎn)一樣訪問(wèn)新生成的節(jié)點(diǎn)。
      ? ? ? ?設(shè)置innerHTML會(huì)導(dǎo)致瀏覽器將HTML字符串解析為對(duì)應(yīng)的DOM樹。換句話說(shuō),設(shè)置完innerHTML之后再讀取它,將會(huì)得到一個(gè)差別很大的字符串。這個(gè)字符串不再是原始的
      HTML代碼,而是根據(jù)原始HTML字符串創(chuàng)建的DOM子樹經(jīng)過(guò)序列化之后的結(jié)果。
      ? ? ? ?innerHTML也有一些限制。首先,在多數(shù)瀏覽器中,通過(guò)innerHTML插入的
      400-680-9298,0791-88117053
      掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號(hào)
      掃一掃打開(kāi)百恒網(wǎng)絡(luò)小程序

      歡迎您的光顧,我們將竭誠(chéng)為您服務(wù)×

      91麻豆精品激情在线观看最新 | 乱人伦精品视频在线观看| 国产美女在线精品免费观看| 精品调教CHINESEGAY| 久久精品视频99| 国产日韩精品SUV| 精品久久久久中文字| www好男人精品视频在线观看| 日韩精品中文字幕无码一区| 国产精品午夜无码av体验区| 国产精品国产三级国产AV麻豆 | 成人午夜精品视频在线观看| 日韩社区一区二区三区| 妇女自拍偷自拍亚洲精品| 亚洲精品无AMM毛片| 一级一级特黄女人精品毛片视频| 91无码人妻精品一区二区三区L| 夜色www国产精品资源站| 久久无码专区国产精品s| 久热香蕉精品视频在线播放 | 99久久99久久久精品齐齐| 亚洲国产精品网站久久| 91大神精品网站在线观看| 久久九九精品99国产精品| 99热这里只有精品国产动漫 | 亚洲日韩中文字幕日韩在线| 国产成人亚洲精品蜜芽影院 | 久久九九99热这里只有精品| 免费精品99久久国产综合精品 | 国产精品久久久久鬼色| 精品福利一区二区三区免费视频| 91精品全国免费观看含羞草| 51精品视频免费国产专区| 久久国产精品77777| 97久久精品一区二区三区| 精品一区高潮喷吹在线播放| 国产精品亚洲片夜色在线| 无码人妻精品一区二区三区99性 | 亚洲日韩中文在线精品第一| 日韩人妻精品无码一区二区三区| jizz中国jizz欧洲/日韩在线|