如果img等于某个高度,则隐藏它
Hide img if it equals a certain height
我正在用tumblr作为我的CMS构建一个小的投资组合,我需要在索引页面上有缩略图。在不进行硬编码的情况下,实现这一点的最佳方法似乎是将缩略图嵌入到正文中,这样图像就会被拉过,然后通过将css更改为"display:none",将其与其他图像相比的唯一高度相匹配,将其隐藏在帖子页面上。
这在理论上似乎很棒,但目前还不起作用。我错过了什么?父div类是.text
<script type="text/javascript">
$(document).ready(function() {
var hide = $('.text img').data-orig-height();
if (hide === 167) {
$('.text img').css('display', 'none');
} else {
$('.text img').css('display', 'block');
}
});
</script>
图像html
<figure class="tmblr-full" data-orig-height="167" data-orig-width="310">
<img src="http://40.media.tumblr.com/d190030c491be51fd47dd1f4291ae9c3/tumblr_inline_nxblnf7rF61tfshob_400.jpg" data-orig-height="167" data-orig-width="310" width="310" height="167" data-meow="true">
</figure>
使用属性值选择器
$('.text img[data-orig-height="167"]').hide();
这将选择具有data-orig-height
属性值的.text
元素内的所有图像作为167
。
$('.text img[data-orig-height!="167"]').show(); // Show the images whose attribute value is not 167
在OP代码中,
$('.text img').data-orig-height();
不是有效的函数。这将抛出data-orig-height
不是函数错误。
要获取data-*属性值,请使用data()
。
这里有三个问题:
1-jQuery没有数据原始高度函数。您可以使用数据功能。
2-===比较不会导致类型强制,所以"167"!===167.
3-调用数据将只返回第一个元素的数据。您希望单独处理每个元素,这就保证了一个for循环。
尝试以下操作:
$('.text img').each(function (k, img) {
var $img = $(img);
if($img.data('origHeight') == 167) {
$img.hide();
} else {
$img.show();
}
});
这:
$('.text img').data-orig-height();
应为:
$('.text img').data('origHeight');
相关文章:
- 当DIV的高度低于某个数字时,隐藏DIV的正确逻辑是什么
- 在每个固定高度段落的最后一行添加省略号,并隐藏溢出 y
- 获取下一个或上一个隐藏元素的高度,以设置父元素的高度.jquery.
- 在具有可变高度的元素上隐藏溢出
- 获取隐藏视频的高度和宽度
- 'style=“;边界:无;溢出:隐藏;高度:80px”'到js对象
- CSS webkit溢出隐藏和HTML元素高度
- 如何使用角度根据元素的高度显示/隐藏元素
- 高度自动 - 调整浏览器大小时显示隐藏内容
- 当溢出-x 设置为隐藏时处理可变高度图像的最佳方法是什么?
- 如何获得隐藏元素高度
- 检测元素高度变化,如果太小则隐藏
- 如果容器高度小于固定值,则隐藏元素
- jQueryUI在另一个选项卡中有两个选项卡-高度是't在隐藏时设置
- 隐藏DIV,直到其项目被包裹在其默认高度
- 如何使用JavaScript显示/隐藏基于其父元素的元素's的动态高度
- 如果img等于某个高度,则隐藏它
- 隐藏元素内跨度的高度
- 隐藏框架的内容高度
- 如何一次隐藏高度表中的所有级数?