4

単語をカウントし、単語の量に基づいてフォントサイズを調整するjqueryスクリプトを入手しました。問題は、親にh1があるすべての属性をカウントすることです。h1ごとに個別にカウントしたい。元のスクリプトはh1:firstとしてマークされています。クラスwofaのすべてのh1をカウントするスクリプトは次のとおりです。

$(function(){

var $quote = $(".wofa h1");

var $numWords = $quote.text().split(" ").length;

if (($numWords >= 1) && ($numWords < 3)) {
    $quote.css("font-size", "1px");
}
else if (($numWords >= 3) && ($numWords < 6)) {
    $quote.css("font-size", "5px");
}
else if (($numWords >= 20) && ($numWords < 30)) {
    $quote.css("font-size", "10x");
}
else if (($numWords >= 30) && ($numWords < 40)) {
    $quote.css("font-size", "15px");
}
else {
    $quote.css("font-size", "1px");
}    

});

4

2 に答える 2

1

更新された 作業例FIDDLE

.each()関数を使用できます

$('.wofa').each(function() {
    var quote = $(this).find('h1');
    var numWords = quote.text().split(" ").length;
    console.log(numWords);
    if ((numWords >= 1) && (numWords < 3)) {
        quote.css("font-size", "1px");
    } else if ((numWords >= 3) && (numWords < 6)) {
        quote.css("font-size", "5px");
    } else if ((numWords >= 20) && (numWords < 30)) {
        quote.css("font-size", "10x");
    } else if ((numWords >= 30) && (numWords < 40)) {
        quote.css("font-size", "15px");
    } else {
        quote.css("font-size", "1px");
    }
});
于 2012-11-25T00:20:44.673 に答える
0

セレクターで .each() メソッドを試しましたが、何も選択されませんでした。

$('.wofa, h1).each() の使用を終了しました:

$('.wofa, h1').each(function() { 
    var words = $(this).html().split(" ");
    alert($(this).html() + ' has ' + words.length + ' words');
});

jsfiddle の作業バージョンは次のとおりです: http://jsfiddle.net/russianator/jKPdQ/

于 2012-11-25T00:36:33.150 に答える