其实 jQuery 的 text() 是对 value、innerText 的封装,而 html() 是对 innerHTML 的封装。请参见 text()、html()、val() 的差异。
之前我们探讨过这个问题,但是由于里面涉及内容比较多,反而显得很杂,今天就只说取值这个问题。
当一个 div 中有如下字符时,text()、html() 取值效果分别如下:
源代码
显示
text()
html()
>>
>>
>>
>>
<<
<<
<<
&&
&&
&&
&&
b
b(加粗)
b
b
| | |
| | |
| | |
| | |
""
""
""
""
''
''
''
''
text() 可以这样总结:
就是从浏览器看到的样子(加粗这些没办法)。
html() 可以这样总结:
1、>、>、、< 指不完整的 HTML 标签,理论上应该是杜绝的,如果排除 >、
2、完整的 HTML 标签、空格、 ,取出来就是源码的样子。
3、"、"、'、',取出来就是从浏览器看到的样子。
头大了,为什么要搞这么复杂呢?
如果不是 div,而是 textarea,则除了 b 那里不一样,其他都一样,其实在 textarea 中直接写 也是不规范的做法,理念上应该是杜绝的,如果规范写法,实际上取出来就是源码的样子。
源代码
显示
text()
html()
b
b
b
<b>b</b>