首页 > 解决方案 > 文本识别和事件

问题描述

我正在尝试根据用户输入的内容做不同的事情。我实际上能够检测到用户正在输入什么,但不知何故我无法用它做任何事情。我想检查是否letters === "a"并做一个简单的console.log,但它不起作用。

另外,我对 jquery 还是很陌生,学习它很棒,所以如果你看到我可以在我的代码中改进的地方,请不要犹豫!

function individuaLetters(e){
    e.each(function(){
       var letters = $(this).html().split();

       console.log(letters)
       if (letters === "a") {
          console.log("nailed it")
       };
    })
}
var text = $('div').find('.indiv');

individuaLetters(text);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
    <span class="indiv">"a"</span>
</div>

谢谢您的帮助!

标签: javascriptjquery

解决方案


拆分创建一个数组,因此拆分后的字母永远不会是字符串。另外,您还有报价要处理。

我摆脱了您的拆分并使用正则表达式删除所有非字母,然后将字符串小写。

function individuaLetters(e){
    e.each(function(){
      var letters = $(this).html().replace(/[^a-zA-Z]/g,"").toLowerCase();
      if (letters === "a") {
         console.log("nailed it")
      };
    })
  }
      var text = $('.indiv');
      individuaLetters(text);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
    <span class="indiv">"a"</span>
</div>


推荐阅读