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 回答