0

画像ソースは、実際の画像の寸法(幅/高さ)を保持します。5枚のdiv#pics画像の場合、3枚の画像は16X16で、2枚の画像は2x2です。2x2の画像には両方とも16x16になるクラスが適用されており、他の3つの画像は16x16です。問題は、このようにフィルタリングすると、次のようになります。

var Images = $('#pics img');
var FilteredImages = Images.filter(function(){
    return ($(this).width() == 16) || ($(this).height() == 16)
});

FilteredImages2つの2x2画像を16x16にするクラスを考慮しているため、5つの画像すべてを保持します。FilteredImagesソース画像のサイズ(cssではない)が16x16である3つの画像のみを保持するにはどうすればよいですか?

4

3 に答える 3

2

私は提案します:

var Images = $('#pics img'),
    FilteredImages = Images.filter(function(){
        var that = this;
        return (that.naturalWidth == '16px') || (that.naturalHeight == '16px')
    });

参照:

于 2012-10-15T21:15:39.003 に答える
1
$('#pics img[width=16][height=16]').css({border:'1px solid red'});
于 2012-10-15T21:15:48.260 に答える
0

画像を一時オブジェクトに追加して、元のサイズを取得できます。

function getImgSize(imgSrc) {
  var newImg = new Image();

  newImg.onload = function() {
    var height = newImg.height;
    var width = newImg.width;
    alert ('The image size is '+width+'*'+height);
  }

  newImg.src = imgSrc; // this must be done AFTER setting onload

}

ここで答えを参照してください: 画像クロスブラウザの元のサイズを決定しますか?

于 2012-10-15T21:17:36.077 に答える