HTML 实体字符处理-再探 jQuery 的 text()、html()

作者:vkvi 来源:千一网络(原创) 日期:2019-8-13

其实 jQuery 的 text() 是对 value、innerText 的封装,而 html() 是对 innerHTML 的封装。请参见 text()、html()、val() 的差异

之前我们探讨过这个问题,但是由于里面涉及内容比较多,反而显得很杂,今天就只说取值这个问题。

当一个 div 中有如下字符时,text()、html() 取值效果分别如下:

源代码

显示

text()

html()

>>

>> 

>> 

>>

<&lt;

<< 

<< 

&lt;&lt;

&&amp;

&&

&&

&amp;&amp;

<b>b</b>

b(加粗)

b

<b>b</b>

| |&nbsp;|

| | |

| | |

| |&nbsp;|

"&quot;

""

""

""

'&apos;

''

''

''

text() 可以这样总结:

就是从浏览器看到的样子(加粗这些没办法)。

html() 可以这样总结:

1、>、&gt;、<、&lt;、&、&amp;  取出来就是从浏览器看到的样子进行 HtmlEncode。这里 >、< 指不完整的 HTML 标签,理论上应该是杜绝的,如果排除 >、<、&,实际上取出来就是源码的样子

2、完整的 HTML 标签、空格、&nbsp;,取出来就是源码的样子

3、"、&quot;、'、&apos;,取出来就是从浏览器看到的样子

头大了,为什么要搞这么复杂呢?

如果不是 div,而是 textarea,则除了 <b>b</b> 那里不一样,其他都一样,其实在 textarea 中直接写 <b> 也是不规范的做法,理念上应该是杜绝的,如果规范写法,实际上取出来就是源码的样子。

源代码

显示

text()

html()

<b>b</b>

<b>b</b>

<b>b</b>

&lt;b&gt;b&lt;/b&gt;



你前面那位网友看了:双硬盘的安装和设置要点

相关文章
文章评论
标题:必填
内容:
专注软件研发 - 重庆云通科技有限公司
vkvi
vkvi

作者简介: vkvi,致力于 .NET Web 开发、移动开发的技术推广,在 .NET、SQL Server、Windows Server 等方面有深入研究和丰富经验,17 年间共计撰写文章近 7000 篇。 主持金融、国土、农业、电商等多个行业项目执行, 推行“技术提升生产力、人心决定成功率”的管理理论。 联系他