如何更改div内所有图像的高度?
我有
$('.images img').each(function() {
$('img').attr('height', element.parent().attr('imgheight'));
});
<div imgheight="300px" class="images">
<img src=" http://www.yu51a5.com/wp-content/uploads/2015/01/goldenhorseman.jpg " />
<img src=" http://www.yu51a5.com/wp-content/uploads/2015/01/bronze-horseman.jpg " />
</div>
似乎没有做任何事情 - 请参阅https://jsfiddle.net/yu51a5/527gn64n/4/。如何使它工作?
我不能使用&#34;身高= 100%&#34;因为通常这些图像带有字幕,所以图像应该比div更短。
答案 0 :(得分:1)
您尚未定义element
。从每个函数内部访问节点。
$('.images img').each(function(i, node) {
$('img').attr('height', $(node).parent().attr('imgheight'));
});
答案 1 :(得分:1)
我建议您将HTML5数据属性与自定义属性imgheight
<div data-imgheight="300px" class="images">
<img src=" http://www.yu51a5.com/wp-content/uploads/2015/01/goldenhorseman.jpg " />
<img src=" http://www.yu51a5.com/wp-content/uploads/2015/01/bronze-horseman.jpg " />
</div>
JS可以像这样简单:
$('.images > img').css('height', $('.images').data('imgheight'));
检查fiddle
但是,如果你有多个.images
div,你会这样做
$('.images img').each(function() {
$(this).css('height', $(this).closest('.images').data('imgheight'));
});
或更好
$('.images').each(function() {
$(this).find('img').css('height', $(this).data('imgheight'));
});
答案 2 :(得分:1)
将element
更改为$(this)
,您就是好人。
答案 3 :(得分:0)
将每个函数中的2个引用更改为$(this)...
$('.images img').each(function() {
$(this).css('height', $(this).parent().attr('imgheight'));
});
答案 4 :(得分:0)
您可以使用data-height
属性并按element.data("height")
这是下面的工作示例
$( document ).ready(function() {
$('.images img').each(function() {
$(this).attr('height',$('.images').data("height"));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-height="300px" class="images">
<img src="http://www.yu51a5.com/wp-content/uploads/2015/01/goldenhorseman.jpg" />
<img src="http://www.yu51a5.com/wp-content/uploads/2015/01/bronze-horseman.jpg" />
</div>