2014-08-31 53 views
0

2个ASCII字符我有一个​​div如下:比较用JavaScript

<div class="job-article-holder-click-for-more-link"> 
    &#x25B2; 
</div> 

和我的javascript如下:

$('.job-article-holder-click-for-more-link').on('click', function() { 
    $(this).html() == "&#x25B2;" ? $(this).html('&#x25BC;') : $(this).html('&#x25B2;'); 
}); 

的检查失败每一次,怎么来的?它基本上是一个箭头,我只是试图切换它,当我点击它时显示上下。

+0

一开始,你有很多的空白,以比较之前删除:'$ .trim($('本)的.html( ))===“&#x25B2”',第二个'html();'可能返回字符实体代码('&#x25B2')或字符本身。 – 2014-08-31 09:01:40

回答

2

不是检查实际的HTML相反,它可能是更安全的,获得真正的性格和使用charCodeAt检查它的ASCII(以及实际上是Unicode)的值。如上所述,您需要先修剪内容:

$('.job-article-holder-click-for-more-link').on('click', function() { 
    $(this).text().trim().charCodeAt(0) == 9650 ? 
     $(this).html('&#x25BC;') : $(this).html('&#x25B2;'); 
}); 
+0

你赢了,你在我之前几秒钟发布了你的答案:-) – csblo 2014-08-31 09:09:13

0

可能您在HTML返回的空间中有空格。尝试修剪html()输出。

$('.job-article-holder-click-for-more-link').on('click', function() { 
    $(this).html().trim() == "&#x25B2;" ? $(this).html('&#x25BC;') : $(this).html('&#x25B2;'); 
});