jQuery Show / Hide Div

我正在使用它来显示/隐藏div扩展器,它工作正常,但是HTML实体没有被输出。

$(document).ready(function() { $('.slickbox').hide(); $("#slick-toggle").toggle(function() { $(this).text("▲ See Less"); $('.slickbox').slideToggle(500); }, function() { $(this).text("See More ▼"); $('.slickbox').slideToggle(500); }); }); 

它只是输出,而不是显示向上或向下箭头实体

  

我该怎么做才能输出实体?

.text已经从“文本”转换为“HTML”本身。

从文档 :

我们需要注意,此方法会根据需要转义提供的字符串,以便在HTML中正确呈现。 为此,它调用DOM方法.createTextNode(),它将特殊字符替换为其HTML实体等价物(例如

因此,您的文字正在转换为▲ 从你的观点来看, 逐字逐句地呈现。

您可以将文字直接编码到字符串中(注意Javascript \u期望Hex,而不是Decimal):

 $(this).text("\u25B2 See Less"); 

如果要使用HTML实体:

 $(this).html("▲ See Less"); 

请参阅此jsfiddle.net代码段 ,其中显示:

  • 你的方法
  • 将文字直接编码为Javascript字符串的有效方法
  • 使用.html的方法。

您是否尝试使用.html而不是.text

 $(document).ready(function() { $('.slickbox').hide(); $("#slick-toggle").toggle(function() { $(this).html("▲ See Less"); $('.slickbox').slideToggle(500); }, function() { $(this).html("See More ▼"); $('.slickbox').slideToggle(500); }); }); 

.text()不处理任何html实体。 在这种情况下,您必须使用.html()。