计算每个div中的图像宽度(相同类别)

时间:2015-05-09 19:39:45

标签: jquery html css

我想让我的Jquery代码计算每个div中它的宽度。例如:当图像的宽度大于250时,我想让它旁边的文字清晰:两者都是在图像下方而不是在图像下方。这是我的HTML和Jquery的一个例子:

ws = new WebSocket("123.123.123.123", "test.com");

Gyazo screenshot 它现在的作用是,它只计算第一个div的宽度而不是第二个等。

3 个答案:

答案 0 :(得分:0)

在您的each功能内部,您再次获得对所有.title-txt-test个对象的引用,而不是使用该功能正在操作的对象。尝试将$(".title-text-test")功能中的each选择器更改为this,如下所示:

$(document).ready(function () {
    $(".title-text-test").each(function () {
        imageWidth = $(this).closest('.tile-image-test').width();
        $(this).width(imageWidth);
        if (imageWidth  > 250) {
            $(this).addClass('clr');
        }
    });
});

答案 1 :(得分:0)

您必须计算通过回调函数$(this)

的元素的宽度
$('.tile-image-test').each( function( index ) {
  console.log( 'Width for image ' + index + ' is ' + $( this ).width() + 'px' );
});

https://api.jquery.com/each/

答案 2 :(得分:0)

您正在为所有具有类clr的元素设置课程title-text-test,因为您获得了第一个元素的width()(imageWidth = $(' .tile-image- test')。width();),你应该将params传递给.each()回调函数,如下所示:

 $(document).ready(function () {
    $(".title-text-test").each(function (index, element) {
        imageWidth = $(element).closest('.tile-image-test').width(); // select closest image
        $(element).width(imageWidth);
        if (imageWidth  > 250) {
            $(element).addClass('clr');
        }
    });
});

如需更详细的解答,请向我们提供您的HTML