2011-01-08 2 views
1

나는 요소들 (알파벳의 각 글자)에 맞는 클래스를 설정하려고합니다. 각 요소는 id # alpha_0에서 # alpha_25까지입니다. 입력 된 문자가 한 번 발생하면 해당 문자를 녹색으로 설정하십시오. 문자가 두 번 이상 나오면 빨간색으로 설정하십시오. 그것이 발생하지 않으면 아무 것도 (검은 색)Pangram의 글자에 클래스 설정

아래 코드는 작동하지 않는 것입니다.

답변

0

각 글자의 수를 빨리 알아 낸 다음 클래스를 설정하는 것이 가장 쉽습니다.

(function($) { 
    function getLetterCount(text) { 
    var alphabet = 'abcdefghijklmnopqrstuvwxyz'; 
    var alphabetSet = alphabet.split(''); 

    var letterCount = {}; 
    $.each(alphabetSet, function() { 
     letterCount[this] = 0; 
    }); 

    var cleanText = text.toLowerCase().replace(/[^a-z]/g, ''); 

    $.each(cleanText.split(''), function() { 
     letterCount[this]++; 
    }); 

    return letterCount; 
    } 

    function setLetterClasses(letterCounts) { 
    $('.letter').removeClass('green').removeClass('red'); 

    $.each(letterCounts, function(letter, count) { 
     if (count > 0) { 
     $('#alpha_' . (letter.charCodeAt(0) - 'a'.charCodeAt(0))).addClass(count > 1 ? 'red' : 'green'); 
     } 
    }); 
    } 

    function isPangram() { 
    var text = $('#input').val(); 
    var letterCount = getLetterCount(text); 

    setLetterClasses(letterCount); 
    } 
})(jQuery); 
관련 문제