jQuery HTML()中的HTML实体
我有一个隐藏的div和一个链接来切换div的可见性。该链接包含还需要切换的文本/html(“隐藏”/“显示”)。以下是我的功能:jQuery HTML()中的HTML实体,jquery,html,html-entities,Jquery,Html,Html Entities,我有一个隐藏的div和一个链接来切换div的可见性。该链接包含还需要切换的文本/html(“隐藏”/“显示”)。以下是我的功能: jQuery('#toggle_filter_link').click(function() { jQuery('#searchfilter_wrap').slideToggle("slow"); jQuery(this).html(jQuery(this).text() == 'Hide ↑' ? 'Show ↓'
jQuery('#toggle_filter_link').click(function() {
jQuery('#searchfilter_wrap').slideToggle("slow");
jQuery(this).html(jQuery(this).text() == 'Hide ↑' ? 'Show ↓' : 'Hide ↑');
});
此函数按预期工作,直到我将箭头添加到HTML(↑
和↓
),此时它切换为“隐藏”↑" 第一次,然后仍然卡住
这里有一个
我假设我需要以某种方式转义HTML实体,但考虑到第一个开关可以工作,我有点困惑。这可能是我明显缺少的东西。:-)
感谢您的帮助!您正在将文本与html 将
jQuery(this.text()
更改为jQuery(this.html()
请注意,由于浏览器规范化HTML的方式,您可能仍然存在问题,您最好测试一些其他条件
jQuery('#toggle_filter_link').click(function() {
jQuery('#searchfilter_wrap').slideToggle("slow");
var $this = jQuery(this);
if ($this.hasClass('show')) {
$this.removeClass('show');
$this.html('Hide ↑');
} else {
$this.addClass('show');
$this.html('Show ↓');
}
});
…或者只是测试一些无法正常化的东西:
jQuery('#toggle_filter_link').click(function() {
jQuery('#searchfilter_wrap').slideToggle("slow");
jQuery(this).html(jQuery(this).text().indexOf('Hide') > -1 ? 'Show ↓' : 'Hide ↑');
});
尝试在;之前添加\很遗憾;没有起作用。谢谢!更改为.html()不起作用,可能是因为您提到的html规范化的方式……所以我现在测试indexOf('Hide'),它的工作方式很有魅力。