【问题标题】:Jquery, check if charAt() is equal to a unicode character?Jquery,检查 charAt() 是否等于 unicode 字符?
【发布时间】:2010-12-08 04:25:30
【问题描述】:

我有一个可折叠的链接,上面有 unicode 箭头

►This is a collapsible link

当有人点击它时,我希望它变成向下箭头 ▼。但是我无法弄清楚如何解析以替换此字符。

这是我的代码:

function CollapsibleContainerTitleClickApp(){
     $(".collapsibleContainerContent.app", $(this).parent()).slideToggle();
     alert($(this).text().trim().charAt(0));
     if ($(this).text.trim().charAt(0) == "\u25B8"{
        alert("inside the if statement");
        $(this).text($(this).text().replace("\u25B8", "\u25BE"));
     }else{
        $(this).text($(this).text().replace("\u25BE", "\u25B8"));
}

现在第一个警报总是以实际箭头 (►) 的形式弹出,并且查看源也有实际箭头。如何查看第一个字符是否是一个箭头,如果是,则将其替换为另一个箭头?第二条警报语句永远不会触发,因此它永远不会通过 if 的条件。

【问题讨论】:

  • 确保你有正确的密钥代码,以及 - ► 你的问题是\u25ba\u25b8 是较小的箭头 ▸。
  • 以后要多注意JS语法错误。你应该很快就发现了这一点。在 Firefox 中,点击 Ctrl+Shift+J 以查看 JS 错误控制台。或者,更好的是,安装Firebug

标签: javascript jquery string unicode


【解决方案1】:

您的if 语句中有多个错误,这就是该分支从未被命中的原因。

if ($(this).text.trim().charAt(0) == "\u25B8"{

您忘记了 if 语句的结束 )

另外,您不是在调用 text() 方法,而是在尝试以成员身份访问它,但事实并非如此。

您的代码应如下所示:

if ($(this).text().trim().charAt(0) == "\u25B8") {

【讨论】:

    【解决方案2】:

    charCodeAt(index) 返回指定索引处字符的整数 unicode 值。这通常是测试单个 char 值的最简单方法——尤其是当它们不可打印或以其他方式特殊时。 (docs at w3schools)

    另外...确保您比较的是正确的 unicode 值。 "\u25B8" 是“小右箭头”()——但您在示例中显示的箭头是“大右箭头”,即"\u25BA"

    所以...一个使用charCodeAt()的简单示例正确的unicode值:

    var s = "►This is a collapsible link";
    if(s.charCodeAt(0) === 0x25BA) {
       alert( "true!");
    }
    

    【讨论】:

      【解决方案3】:

      你也可以用 css 和 jQuery 解决这个问题:

      CSS:

      .collapsible_link:before { content: "\25BC"; }
      .collapsed_link:before { content: "\25BA"; }
      

      jQuery:

      $('#link').click(function(o) {
         $(o).toggleClass('collapsible_link collapsed_link');
      });
      

      【讨论】:

        猜你喜欢
        • 2016-12-21
        • 1970-01-01
        • 2014-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-15
        • 2019-10-10
        • 2015-02-04
        相关资源
        最近更新 更多