0

我想获取标签options中的数量select,然后从中生成相同数量的图像路径。


$optionIndex = $("option", "select").index; // 2
imagePath = "/images/slider/slide-"
$images = "[" + imagePath + $optionIndex + ".jpg" + "]"; 

$(window).load(function() {
  var $slider = $(".slider").slider({
    images: $images // ideally this would show ["image1.jpg", "image2.jpg" etc…]
  });
}
4

3 回答 3

1

您必须循环并创建一个数组,例如

$images = [];
for (var i=1;i<= $optionIndex ;i++)
{ 
   $images.push(imagePath + i + ".jpg");
}

演示

于 2013-10-01T22:07:24.667 回答
1

一件事是$("option", "select").index应该的$("option", "select").index()。否则你最终会得到index方法的函数引用。但我猜你想取长度然后迭代。

但在这里你可以这样做:

 var $imagePathArray = $("select").find("option").map(function(i){ //<-- zero based index
        return  imagePath + i + ".jpg" ;
 }).get();

演示

于 2013-10-01T22:15:44.730 回答
0

尝试类似:

var selOps = $('#selectId>option'), imagePath = '/images/slider/slide-', imgs = [];
selOps.each(function(i){
  imgs[i] = imagePath+this.val()+'.jpg';
});
$(window).load(function(){
  var $slider = $(".slider").slider({
  // not sure there is an images property of the slider object, so I'm confused about this part
  });
});
于 2013-10-01T22:36:52.333 回答