如何通过其css属性jQuery获取img

时间:2014-02-19 08:19:41

标签: jquery

我想在jQuery上通过它的css属性获取一个img。该属性为margin-left:-1920px。

我该怎么做?

我试过$('img').css('margin-left', '-1920px'); console.log('img'); 但当然它改变了财产,这是我不想要的。我想先获取元素然后更改属性。 我怎样才能得到这个元素?

我的jQuery代码:

$(document).ready(function() {
var sliderUL = $('.slider').children('ul'),
    imgs = sliderUL.find('img'),
    imgWidth = imgs[0].width, // 960
    imgsLen = imgs.length,  // 4
    current = 1,
    totalImgsWidth = imgsLen * imgWidth;


$('#slider-nav')
    .show().find('button').on('click', function() {
        direction = $(this).data('dir');

    var loc = imgWidth;
        (direction === 'next') ? ++current : --current;

        if (current === 0) {
            current = imgsLen;
            direction = 'next';
            loc = totalImgsWidth - imgWidth;


        } else if ( current - 1 === imgsLen ) {
            current = 1;
            loc = 0;
        }

        transition(sliderUL, loc, direction);


    });
function transition( container, loc, direction ) {
    var unit;

    if ( direction && loc !== 0 ) {
        unit = ( direction === 'next' ) ? '-=' : '+=';
    }

    container.animate({
        'margin-left': unit ? (unit+loc) : loc
    })

}

});

我的HTML:

<body>
<div id="slider-nav">
    <button data-dir="prev"><</button>
    <button data-dir="next">></button>
</div>
<div class="slider">
    <ul>
        <li><img src="img1.jpg" alt="image"></li>
        <li><img src="img2.jpg" alt="image"></li>
        <li><img src="img3.jpg" alt="image"></li>
        <li><img src="img4.jpg" alt="image"></li>
    </ul>
</div>

2 个答案:

答案 0 :(得分:6)

您可以使用 filter()

过滤那些风格的图片
var img = $('img').filter(function() {
    return $(this).css('margin-left') == '-1920px';
});

答案 1 :(得分:2)

您可以使用:

 var x = $('img').filter(function () { 
   return this.style.marginLeft == '-1920px' 
});