如何使用jQuery计算HTML片段中出现的字母数?

时间:2016-03-07 06:51:14

标签: javascript jquery html

尝试在jsfiddle上练习jQuery。我正在计算div元素中有多少个字母。我做错了什么(我确定很多事情),我使用的是正确的方法吗?

提前致谢:)

编辑:对不起,我并没有真正尝试字符串中有多少个字母,但是我要查询的字母数量是div元素。我想如果我想计算我只会使用.length的字母,但是我不应该使用循环来查看字符串,看看我正在寻找的字母是否在字符串中?

HTML

<div>Hello!</div>

的jQuery

$(document).ready(function() {
  var countLetters = function (letter) {
    var counter = 0;
    for (i = 0; i <= $('div').length; i++) {
      if ($('div')[i] == letter) {
        counter++;
        $('div').append('<p>There are ' + counter + ' ' + letter + 's</p>');
      } else {
        $('div').append('<p>That letter isn\'t found</p>');
      }
    }
  }
 countLetters('e');
});

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式完成检查。

请阅读代码中的注释。

&#13;
&#13;
$(document).ready(function() {
  var countLetters = function (letter) {
    // get the div's text
    var divText = $('div').text(),
        // create regex that contains the letter only and 'g' modifier to find the all instanses.
        regex = new RegExp(letter, 'g'),
        // divText.match return an array with all matches so you can get the .length
        counter = divText.match(regex).length;

    console.log(counter);

    // now it's a regular check
    if (counter > 0) {
      $('div').append('<p>There are ' + counter + ' ' + letter + 's</p>');
    } else {
      $('div').append('<p>That letter isn\'t found</p>');
    }

  }
  countLetters('e');
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>Heeello!</div>
&#13;
&#13;
&#13;

http://jsbin.com/huqados/edit?html,js