nth-child()中的变量jquery / javascript

时间:2013-07-24 16:37:03

标签: javascript jquery variables jquery-selectors

我有以下代码:

$(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应该与变量count相同。 我添加+符号(虽然我不知道为什么我必须)并使引号符号不同,但它仍然无法正常工作

1 个答案:

答案 0 :(得分:5)

你应该这样做:

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

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

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

只是一个长串,一个没有意义的选择器;这就是为什么它什么都不匹配,你必须通过用相同类型的引用来结束静态部分来实际分离这些部分......