Javascript jQuery-在文档就绪时仅隐藏可见图像(加载前)
我正在开发一个Chrome扩展,需要一个功能,以便我希望尽快(在加载之前)获取所有可见图像,隐藏它们并设置一些属性。我一直在尝试:Javascript jQuery-在文档就绪时仅隐藏可见图像(加载前),javascript,jquery,image,google-chrome-extension,hide,Javascript,Jquery,Image,Google Chrome Extension,Hide,我正在开发一个Chrome扩展,需要一个功能,以便我希望尽快(在加载之前)获取所有可见图像,隐藏它们并设置一些属性。我一直在尝试: $(document).ready(function () { $('img:visible').each(function() { $(this).css('visibility', 'hidden'); $(this).attr('data-internalid', guid()); }); }); 但是在调试时
$(document).ready(function () {
$('img:visible').each(function() {
$(this).css('visibility', 'hidden');
$(this).attr('data-internalid', guid());
});
});
但是在调试时,我注意到它甚至没有遍历循环。我在这里遗漏了什么?检查返回的内容$(此)
,
使用控制台日志
$(document).ready(function (index) {
$('img:visible').each(function() {
$(this).css('visibility', 'hidden');
$(this).attr('data-internalid', "test"); /*instead of guid().I think that function have some problem.Make sure it is defined or loaded properly*/
});
});
问题在于guid()函数。此代码在firefox和chrome上运行良好。请检查该函数。如果问题未解决,请在jquery脱机时更新它,否则请提供guid()函数
$(函数(){
//$(“#btn”)。单击(函数(){
$('img:visible')。每个(函数(){
$(this.css('visibility','hidden');
$(this.attr('data-internalid',“test”);
});
// });
});代码>
img{
宽度:100px;
高度:100px;
利润率:10px
}
跨度{
显示:块;
光标:指针;
}
正如我在评论中提到的,点击我
如果元素占用文档中的空间,则认为它们是可见的。可见元素的宽度或高度大于零
所以,你的选择之一就是使用
$(window).on('load', function() { ... });
您也可以尝试其他方法,例如以下方法
为以后要设置属性的所有图像创建一个类
设置<代码>显示:无代码>到CSS中的特定类
加载时(查看第一个选项),设置属性,然后通过删除类(推荐)或设置内联样式(不美观)来显示这些图像
希望这是清楚的:)你试过检查$('img:visible')
返回什么吗?它返回这个[prevObject:n.fn.init[1],上下文:文档,选择器:“img:visible”,jquery:“2.1.3”,构造函数:函数…]上下文:文档长度:0prevObject:n.fn.init[1]选择器:“img:visible”proto:n[0]可以尝试另一种方法=>1)为要设置属性的图像设置一个类,2)设置display:none代码>到CSS中的该类,3)加载时,设置属性,然后显示这些图像。此外,从doc:元素如果占用文档中的空间,则认为它们是可见的。可见元素的宽度或高度大于零。。因此,在doc ready上,未加载所有图像,这可能是失败的原因。你可能想试试$(window)。在('load',…
@LShetty)上,你应该把它变成一个答案。正如我说的,它根本不会在循环中迭代。这个函数非常简单,而且加载正确。这个函数在chrome中进行了测试,firefoxI没有让它“没用”为了提问,我只是尝试了一下,但没有成功。我也对那一行进行了注释,但仍然是相同的。现在检查一下。然后运行代码段。$(function(){})是$(document.ready(function(){})的缩写