【问题标题】:If statements with emojis带有表情符号的 if 语句
【发布时间】:2021-08-07 07:04:28
【问题描述】:

我刚刚开始使用 javascript,所以如果我说的不清楚,我深表歉意。我正在尝试编写一个函数来查看 var 表情符号是否与指定的表情符号相同。我后面有一个 else 声明 - 作为一个失败。 ```

    function match1() {
   
    var emoji = document.getElementById("emoji");
   
    if (emoji == "&#128516"){
  
    document.getElementById("demo").innerHTML = "correct"; 
    
    }
    
    else {
      
      document.getElementById("demo").innerHTML = "not correct"; 
      document.getElementById("emoji").innerHTML = "&#128542";
    }
    
 }

一切都很好,除了 if 语句实际上从未发生过,即使 emoji 确实等于 😄。是 if 语句永远不会起作用还是我写错了?

【问题讨论】:

  • emoji 将是一个 DOM 元素,假设它存在于您的 DOM 中,而不是字符串。试试console.log(emoji.innerText)emoji.innerHTML 看看你会得到什么。
  • 喜欢if (emoji.innerHTML == "&#128516"){ document.getElementById("demo").innerHTML = "correct"; } if ( console.log(emoji.innerText) == "&#128516"){ document.getElementById("demo").innerHTML = "correct"; } ?

标签: javascript html if-statement emoji


【解决方案1】:

您的问题是,当您获得表情符号时,它不是 HTML 转义字符,而是实际呈现的 HTML,如您所见:

console.log(document.getElementById("emoji").innerHTML);
<p id="emoji">&#128516</p>

无论如何,要比较表情符号,只需像在 if 语句中一样进行操作,但在 JavaScript 中使用表情符号的渲染版本,而不是转义字符。此外,正如 cmets 中有人指出的那样,document.getElementById("emoji") 将返回类似<p id="emoji">?</p> 的内容,而不仅仅是内容。您可以通过innerHTMLinnerText 获取内容。

这是您问题的一个工作示例:

function match1() {
  var emoji = document.getElementById('emoji').innerHTML;
  if (emoji === "?") {
    document.getElementById("demo").innerHTML = "correct";
  } else {
    document.getElementById("demo").innerHTML = "not correct";
    document.getElementById("emoji").innerHTML = "&#128542";
  }
}
match1();
<p id="emoji">&#128516</p>
<p id="demo"></p>

【讨论】:

  • 非常感谢您的回答,这更有意义!我现在使用的 IDE 不允许我使用表情符号的渲染版本,它只是作为一些框出现,你有什么推荐的吗?谢谢你的回答,真的很有帮助!
  • @FaithLyman 只需对表情符号使用转义序列即可。 "\u{1f600}" === "?"。 IDE 和文件编码的问题更少。
  • 使用 cmets 中给出的其他解决方案即可。
  • 很高兴它有帮助。如果它回答了您的问题,您能否选择正确的答案?
  • 是的,当我找到一个可以让我将表情符号添加到脚本中的 IDE 时,它按预期工作!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-17
  • 2017-06-14
  • 2012-01-27
  • 2016-08-15
  • 2014-10-26
  • 2018-02-20
相关资源
最近更新 更多