有人可以向我解释为什么代码片段会像PHP htmlentities()那样表现吗?
$('<div />').text(value).html();
此外,这是否适用于新版本的jQuery?
答案 0 :(得分:1)
对于在HTML中具有特殊含义的字符,似乎只是像PHP的htmlentities()一样,例如&lt;和&gt;。当您致电$('<div/>').text('<br>')
时,您会创建一个div元素,然后使用文本<br>
填充它。尖括号在HTML中转换为<
和>
,因此它们不会被解释为HTML标记。然后div元素如下所示:
<div><br></div>
如果.text()没有转义括号,你会得到这个:
<div><br></div>
...而且不包含文字<br>
,它将包含一个br元素。
在该元素上调用.html()然后获取元素内的HTML代码,其中尖括号转换为HTML实体。虽然有很多角色不会逃脱。例如,©不会转换为©
。