2015-04-17 26 views
0

我在页面上有几个div,我想用jQuery向他们添加类。 但jQuery只检查第一个backround-image的比率,并向所有div添加相同的类。jquery只检查页面上的一个图像

如何检查所有背景图像的比例?

段:

$(document).ready(function() { 
    var image_url = $('.class1').css('background-image'), 
     image; 

    // Remove url() or in case of Chrome url("") 
    image_url = image_url.match(/^url\("?(.+?)"?\)$/); 

    if (image_url[1]) { 
     image_url = image_url[1]; 
     image = new Image(); 

     // just in case it is not already loaded 
     $.each(image).load(function() { 
      // alert(image.width + 'x' + image.height); 
      var ratio = image.width/image.height; 

      if (ratio > 1) { 
       $(".class1").addClass("added_1"); 
      } else if (ratio < 1) { 
       $(".class1").addClass("added_2"); 
      } 
     }); 

     image.src = image_url; 

    }; 
}) 
+0

使用'this'内把一切都变成了'each',而不是'image'。 '.class1'选择器相同。如果您需要更多帮助,请放置HTML格式 – oscarvady

回答

1

使用jQuery的width()height()方法。

试试这个

$.each(image, function() { 
     var ratio = $(this).width()/$(this).height(); 

     if (ratio > 1) { 
      $(".class1").addClass("added_1"); 
     } 
     else if (ratio < 1) { 
      $(".class1").addClass("added_2"); 
     } 
    }); 

    image.src = image_url; 
0

$('.class1').each(function(){});

$(document).ready(function(){ 
    $('.class1').each(function(){ 
     var checkClass = $(this); 
     var image_url = checkClass.css('background-image'), 
     image; 

     // Remove url() or in case of Chrome url("") 
     image_url = image_url.match(/^url\("?(.+?)"?\)$/); 

     if (image_url[1]) { 
      image_url = image_url[1]; 
      image = new Image(); 

      // just in case it is not already loaded 
       $.each(image).load(function() { 
       // alert(image.width + 'x' + image.height); 
       var ratio = image.width/image.height; 

       if (ratio > 1) { 
        checkClass.addClass("added_1"); 
       } 
       else if (ratio < 1) { 
        checkClass.addClass("added_2"); 
       } 
      }); 

     image.src = image_url; 

     } 
    }); 
}); 
+0

谢谢,这对我很有用 – meks

相关问题