使用jquery

时间:2015-07-20 20:48:47

标签: jquery height width

我在jquery中插入一个div到一个图像包装器,基于一个条件(这没有重要性),我有这个应该的方式工作,但问题是我想给这个div一个宽度和一个高度取决于其先前兄弟的图像。 不确定是否可以像在jquery中创建的div那样添加宽度和高度。

<div class="imageWrap imageWrap2">
    <img src="images/image1" class="image" />
</div>

使用代码,标记如下所示:

<div class="imageWrap imageWrap2">
    <img src="images/image1" class="image" />
    <div class="extraDiv"></div><-- <-- added with jquery -->
</div>

jquery我已经添加了(再次条件不重要,也不是放置后,附加插入等)

$('.image').each(function(){

    if ($(this).closest('.imageWrap').hasClass('imageWrap'){

        $(this).after('<div class="extraDiv"></div>');

            var imageWidth = $(this).prev().width();
            var imageHeight = $(this).prev().height();

            $('.extraDiv').width(imageWidth).height(imageHeight);       

    }

});

有人可以告诉我如何获取每张图片的宽度并将其应用到extraDiv。

非常感谢。

1 个答案:

答案 0 :(得分:1)

试试这个? (有点难以知道它是否能在没有小提琴或者傻瓜的情况下起作用):

$('.image').each(function(){
    var imageWidth = $(this).width();
    var imageHeight = $(this).height();
    $(this).closest('.imageWrap').append('<div class="extraDiv"></div>');
    $(this).siblings('.extraDiv').width(imageWidth);
    $(this).siblings('.extraDiv').height(imageHeight);
});

OR:

$('.image').each(function(){
    var imageWidth = $(this).width();
    var imageHeight = $(this).height();
    $(this).closest('.imageWrap').append('<div class="extraDiv" style="width:' + imageWidth + 'px;height:' + imageHeight + 'px;"></div>');
});

Plunkr

首先,你不需要那里的if语句,因为通过应用closest(className)函数,你已经在检查它是否具有该类名。你也会在if内的最后一个语句遇到麻烦,因为$('.extraDiv')将更新所有以extraDiv作为其类的类,我认为不是你想在这做什么