0
$(function(){
    $(".link").each(function(){
        var spany =$('span').size();
        var word = $('.button').text().length;
        var a = 5;
        if(a > word){
            $("#control").append("small");
        } else {
            $("#control").append("big");
        }
    });
    return false;
});

我对 jquery 及其each功能有疑问。each不运行。
在我的示例中,我有第二个跨度 5 个字(大)但第一个跨度 4 个字(不大)。我想要输出 1.span 小,2.span 大。我怎样才能修复我的代码来得到这个?

http://jsfiddle.net/GNUUH/

4

3 回答 3

2

试试这个:

$(function(){
    $(".link").each(function(){
        var spany =$(this).find('span').size();
        var word = $(this).find('.button').text().length;
        var a = 5;
        if(a > word){
            $("#control").append("small");
        } else {
            $("#control").append("big");
        }
    });
    return false;
});

我希望这会有所帮助

于 2012-08-15T11:02:26.977 回答
1

您当前的选择器span.button搜索整个文档。用于$(this).find仅在当前.link元素下方搜索:

var spany = $(this).find('span').size();
var word = $(this).find('.button').text().length;

jsFiddle

于 2012-08-15T11:03:32.017 回答
0

对于每个循环的每次迭代,您都在浏览页面上的每个跨度。

检查这个解决方案... http://jsfiddle.net/GNUUH/7/

于 2012-08-15T11:05:50.080 回答