我想在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>
答案 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'
});