使用jQuery获取图像属性

时间:2013-03-22 10:08:28

标签: jquery html

我想用jQuery获取图像的src属性。在下面的代码中,如果我没有将图像包装在divli等中,那么它可以正常工作,但是如果我更改了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>

1 个答案:

答案 0 :(得分:2)

因为您使用的是.next()

.next会发现next元素并非全部child,而是需要使用.find