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