jQuery get max width of child div's

后端 未结 3 1387
不知归路
不知归路 2020-12-05 00:42

I need to get the max width(just the one width) of the child div in the wrapper div element

相关标签:
3条回答
  • 2020-12-05 01:08
    Math.max.apply(Math, $('.image').map(function(){ return $(this).width(); }).get());
    

    Per suggestion, I'll break that down:

    $('.image').map(function(){
       return $(this).width();
    }).get();
    

    The above gets a list of all .image divs and converts it into a list of their widths. So you'll now have something like: [200, 300, 250, 100, 400]. The .get(), as Felix pointed out, is necessary to get an actual Array instead of a jQuery array.

    Math.max takes N arguments, so you have to call it as: Math.max(200, 300, 250, 100, 400), which is what the Math.max.apply piece accomplishes.

    0 讨论(0)
  • 2020-12-05 01:10

    A not-so-difficult example function to consider; not as elegant as cwolves, but probably easier to follow if you're a beginner.

    function getMaxChildWidth(sel) {
        max = 0;
        $(sel).children().each(function(){
            c_width = parseInt($(this).width());
            if (c_width > max) {
                max = c_width;
            }
        });
        return max;
    }
    

    http://jsfiddle.net/userdude/rMSuJ/1/

    0 讨论(0)
  • 2020-12-05 01:17

    I like this approach because it hits the sweet spot (IMHO) between core readability and shortness:

    var max_w = 0;
    $('#wrapper div.image').each(function() {
        max_w = Math.max(max_w, parseInt($(this).width()));
    })
    

    YMMV of course.

    0 讨论(0)
提交回复
热议问题