2014-08-31 65 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;'); 
});