天天看點

JS魔法堂:再識ASCII實體、符号實體和字元實體

一、前言                                         

  相信大家都熟悉通過字元實體   來實作多個連續空格的輸入吧!本文打算對三類html實體及js相關操作作進一步的整理和小結,若有纰漏請大家指正,謝謝。

二、初識html實體                                                                 

  由于html中某些字元是預留的(如>和<等),若要在進行html解析出來後能正确顯示預留字元,則需要使用字元實體來代替了。

  字元實體有三種表示方式:

按 ctrl+c 複制代碼

  實體名好處是便于記憶,但不一定所有浏覽器能識别所有實體名。

  而所有浏覽器均能識别所有的實體編号。

  注意:實體名是大小寫敏感的哦!

三、3種實體類型                                     

    ,不是space鍵産生的空格。寬度受到字型的

影響。代表non-breaking

space(不間斷空白),嚴格語義上是使用場景不希望自動換行時使用,但浏覽器會合并多個半角空格(\u0020,由space鍵産生的空格),是以我

們習慣用&nbsp(unicode為\u00a0)來描述多個空格。

    ,1/2個中文字元寬度,且寬度不受字型的影響。

    ,1個中文字元寬度,且寬度不受字型的影響。

  題外話:全角空格的unicode為\u3000。

四、通過outerhtml,innerhtml,innertext,textcontent和value操作實體 

  首先我們需要将3種實體類型分成兩類,ascii實體為一類,字元實體和符号實體為一類。

  對于ascii實體

     1. 非表單元素的outerhtml和innerhtml隻能擷取實體名或實體編号;

     2. ie/chrome下非表單元素的innertext可擷取對應的字元;

     3. ie9+/ff/chrome的非表單元素的textcontent可擷取對應的字元;

     4. textarea的value可擷取對應的字元。

  對于字元實體和符号實體

     隻能擷取對應的字元,無法直接擷取實體名和實體編号。

五、總結                                  

  若有纰漏請大家指正,謝謝。

繼續閱讀