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

一つは、ある$("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 に答える
1

ループして次のような配列を作成する必要があります

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

デモ

于 2013-10-01T22:07:24.667 に答える
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 に答える