1

我有以下代码:

$(document).ready(function(){
    var max_count = $(".slider").children().length;
    function fn_get_natural_dim(slide_image,img){
        var width = img.width;
        var height = img.height;
        var ratiow = width/600;
        var ratioh = height/400;

        if(ratiow>=ratioh)
            {
            height = height/ratiow;
            $(slide_image).css("width","600px");
            $(slide_image).css("height",height);
            var margin = (400-height)/2;
            $(slide_image).css("margin-top",margin);
            }
        else
            {
            width = width/ratioh;
            $(slide_image).css("width",width);
            $(slide_image).css("height","400px");
            var margin = (600-width)/2;
            $(slide_image).css("margin-left",margin);
            }
    }
    for(var count=1;count<=max_count;count++)
        {
        var count_string = count.toString();
        var img_name = "img" + count_string;
        var slide_image = $('.slider > li:nth-child(" + count + ")');

        var img = new Image();
        img.onload = (function(slide_image,img){
            return function() {fn_get_natural_dim(slide_image,img);};
        })(slide_image,img);
        img.src = $(slide_image).attr("src");
        }
});

我希望变量 slide_image 选择第 n 个列表,其中 n 应该与变量计数相同。我添加了 + 符号(虽然我不知道为什么我必须这样做)并使引号符号不同,但它仍然不起作用

4

1 回答 1

5

你应该这样做:

$('.slider > li:nth-child(' + count + ')');

问题是你没有关闭变量周围的字符串/段,所以:

'.slider > li:nth-child(" + count + ")' 

只是一个长字符串,一个没有意义的选择器;这就是为什么它不匹配的原因,您必须通过用相同的引号结束静态部分来实际分开这些部分......

于 2013-07-24T16:39:23.083 回答