我正在为我的网页制作一个滑块,我正在使用名为"Cycle"的jquery插件。我在访问滑块中使用的图像源时遇到了一个问题。这很难解释,所以这里是我的"头部"部分的代码:
<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="jquery.cycle.all.js"></script>
<script type="text/javascript">
$('#slider').before('<ul id="pager">').cycle({
fx: 'scrollHorz',
speed: 900,
timeout: 5500,
pause: 1,
pager: '#pager',
pagerAnchorBuilder: function(idx, slide) {
return '<li><a href="#"><img src="' + slide.src + '" width="120" height="65" /></a></li>';
}
});
</script>
这是html部分:
<div id="slider_container">
<div id="slider">
<div class="items">
<img src="1.jpg"/>
<div class="info">
<h2>Tile Nr. 1</h2>
</div>
</div>
<div class="items">
<img src="2.jpg"/>
<div class="info">
<h2>Tilte Nr. 2</h2>
</div>
</div>
</div>
<div id="pager">
</div>
</div>
在我的slider
div中,我想显示块,每个块都包含图像和一些标题,但在pager
div中,我们只想显示slider
中使用的块中的图像。我确信问题出在第三个javascript中的slide.src
表达式中。我应该如何更改该表达式以获得存储在适当的items
块中的图像源?
你能在这里设置一个jsFiddle来获取你需要的jquery文件吗?
我猜slide.src
不是你想要的。如果slide
是对DOM中某个元素的引用,那么您可以访问它的"source"属性,如下所示:$(slide).attr('src')
更新:
原来"slide"是包含div的,所以我们需要这个:
$(slide).find('img').attr('src')
当您检查pagerAnchorBuilder
-函数中的参数slide
时,您会发现幻灯片是一个类为items
的div元素,并且包含img元素作为第一个子元素。因此,您可以访问img及其src属性,如下所示:
pagerAnchorBuilder: function(idx, slide) {
var source = $('img', slide).attr('src');
return '<li><a href="#"><img src="' + source + '" width="120" height="65" /></a></li>';
}
还有其他一些写它的方法,结果都是一样的:
var source = $(slide).find('img').attr('src');
// or in native js
var source = slide.querySelector('img').getAttribute('src');
var source = slide.querySelector('img').src;
var source = slide.firstElementChild.src