私は単純な画像スライダーを持っています、htmlは次のようになります:
<ul id="gallery-slider">
<li class="slide-li" >
<img src="img1.png" width="1024" height="590" alt="img1">
</li>
<li class="slide-li" >
<img src="img2.png" width="1024" height="590" alt="img2">
</li>
<li class="slide-li" >
<img src="img3.png" width="1024" height="590" alt="img3">
</li>
...
</ul>
次に、画像の概要を把握するために、いくつかの親指を追加します。スライドの画像から親指を作成したいと思います。私はZeptoを使用しており、次の画像を取得して新しい画像を作成しようとしました。
//imageSlider is the image slider instance in use
for (var i = 1; i <= imageSlider.length; i++) {
//find the image in li
var img = $('#gallery-slider li').eq(i-1).find('img').clone().attr({'width': 268, 'height': 172});
//view cloned element in console
console.log(img);
...
//here the img var will get pushed into an array
}
これで、コンソールでimg varを吐き出すと、空のオブジェクトが表示されます。問題はfind()関数だと思います。これを行うと、次のようになります。
var img = $('#gallery-slider li').eq(i-1).clone();
img varは空ではありません–コンソール出力には複製されたli要素が表示されます。これはバグですか、それともclone()関数をfind()と組み合わせて使用できませんか?
編集:
私もこれを試しました:
var img = $('#gallery-slider li').eq(i-1).find('img'),
thumb = img.clone();
–同じ結果。