我想用jQuery获取图像的src属性。在下面的代码中,如果我没有将图像包装在div
或li
等中,那么它可以正常工作,但是如果我更改了HTML标记,则它不起作用:
jQuery的:
function setNavi( $c, $i ) {
var title = $i.attr( 'alt' );
$('#title').text( title );
var $prev = ($i.is(':first-child')) ? $c.children().last() : $i.prev();
var prev_link = $prev.attr('src').split('/large/').join('/small/');
alert(prev_link); /* test image src */
var $next = $i.next();
var next_link = $next.attr('src').split('/large/').join('/small/');
alert(next_link); /* test image src */
}
$(function() {
$("#carousel").carouFredSel({
items: 1,
prev: '#prev',
next: '#next',
scroll: {
onBefore: function( data ) {
setNavi( $(this), data.items.visible );
}
},
onCreate: function( data ) {
setNavi( $(this), data.items );
}
});
});
这有效:
<div id="wrap">
<img src="img/img1.jpg" alt="Alt text" / >
</div>
这不起作用 如果我在下面的html中包装图像,它不起作用:
<div id="wrap">
<ul>
<li>
<div class="left">
<div class="image">
<img src="img/img1.jpg" alt="Alt text" / >
</div>
</div>
<div class="right"><div class="text">some text</div></div>
</li>
</ul>
</div>
答案 0 :(得分:2)
因为您使用的是.next()
。
.next
会发现next
元素并非全部child
,而是需要使用.find
。