Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery HTML()中的HTML实体_Jquery_Html_Html Entities - Fatal编程技术网

jQuery HTML()中的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 ↓'

我有一个隐藏的div和一个链接来切换div的可见性。该链接包含还需要切换的文本/html(“隐藏”/“显示”)。以下是我的功能:

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'),它的工作方式很有魅力。