今天遇到一个很奇怪的问题,折腾了半天没有解决。当时脑子实在是太晕了,想着一直这样下去很难解决,还是先暂时放松一下吧。然后开始躺在床上,也睡不着,心里头想着未解的问题,就是看手机。隔了一会儿,感觉稍微清醒一点,然后开始解决问题。后来终于明白可能是因为html中特殊符号没有转义导致的。
我的原来的html如下:
"<span class='disable'><Previous page</a></span>"
我的本意是想实现对于”上一页“的按钮前面加上一个‘<’符号,完全是为了提供更好的用户体验这么做的。我直接在”Previous page“前面加上'<'符号,就是不对,但是令我奇怪的是对应的在”Next page“后加上">"符号就完全没有问题。
<span class='disable'>Last page</a></span>
这让我感到很是困惑,两个完全类似的结构,进行同样的操作,为什么会有不一样的结果呢?后来又发现我要是在”Previous page“后加"<"符号,就是”Previous page<“这样就完全没有问题。通过chrome查看html的结构,如下所示:
怎么会有<previous>这个标签呢?网上查了一下,好像也没有previous这个标签呀。看了好几次,突然看到”<previous“前两个字符为"<p"。难不成对”<Previous page“,浏览器把它解析成了"<p>"标签了?后来上网查,果然有html标签转义的文章。在这篇文章中找到"<"的转义形式为”<“,我于是用"<"替换了"<",发现果然就正确了。
通过这个小问题,自己收获还蛮多的。额外的收获如下:
- html中可能是大小写不敏感的,<P在解析的时候是按<p对待的;
- 明白了html中的转义功能,以前从来没有想到过这个问题,今天遇到了,以后就能避免再出这样的问题。