2016-03-07 9 views
0

試圖在jsfiddle上練習jQuery。我正在計算div元素中有多少個字母。我做錯了什麼(我確定很多東西),我使用正確的方法嗎?如何使用jQuery計算HTML片段中出現的字母數?

感謝提前:)

編輯:對不起,我是不是真的有多少字母串的,但究竟有多少我我想詢問信的,是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'); 
}); 
+2

的[Jquery的數字]可能的複製(http://stackoverflow.com/questions/9004095/jquery-count-characters) –

+0

'$('DIV ')[i]'是一個dom元素引用...所以它永遠不會等於'letter' –

+0

您需要讀取'div'的文本內容並計算字母 –

回答

0

您可以使用正則表達式來完成你的檢查。

請閱讀代碼註釋。

$(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'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div>Heeello!</div>

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

+0

你試過了嗎? –