如何检查div中是否有任何可见内容

时间:2010-02-21 05:06:29

标签: javascript jquery html show-hide

我的页面上有一个脚本,可以将广告网络中的内容加载到div中。此广告网络的填充率为80%,即它仅在80%的时间内投放广告,另外20%的时间不投放广告。遗憾的是,广告网络没有向我提供回电信息,告诉我它何时没有投放广告。因此,有时这个div显示广告,有时则显示空白。

这在我的网站上看起来很可怕,让我成为一只悲伤的熊猫。有没有办法检查div中是否有可见内容?如果我知道这一点,我会知道何时显示div,以及何时隐藏它。

这听起来像是一个难以解决的问题,但我想知道是否有任何解决方案。对你而言,大师。

4 个答案:

答案 0 :(得分:0)

我认为最好的解决方案是寻找更可靠的广告网络。但是,您可以通过在jQuery对象上使用length属性来检查是否存在任何DOM元素。例如:

if (!$('#adframe img').length) {
  // the ad image doesn't exist, so do something to deal with it
}

这只是一个通用示例,因为我不知道广告标记的结构或有时会遗漏哪些元素,但重点是使用length属性来查看选择器匹配的元素数量。如果找不到该元素,则该值将为零,您可以使用它来执行某些操作。

答案 1 :(得分:0)

这里你去假设广告没有设置Div可见性。这是sudo-code。

1。)使用id或名称

为div分配变量
var myDiv=document.getElementsByName("divName");

2。)将div内部文本放入变量

var myAd = getInnerText(myDiv);

3.)检查内部文本div是否为空

if(typeof(myAd) == '' || myAd == null)

4.。)根据DIV标签之间的文本更改DIV的可见性。

答案 2 :(得分:0)

有一些实际的标记会有所帮助,但是如果我正确地读你,你通常会有一个空的div,然后有时会有一个iframe或嵌套的iframe或同样可怕的东西。

所以我使用两个并发解决方案:首先,最简单的jQuery解决方案是:

$("#ad-container div:empty").hide();

(将#ad-container div替换为您使用的任何内容。)

与此同时,对于不起作用的时代(讨厌的iframe和东西),使用CSS提供备份背景图像,可能会提升自己或者只是让空间看起来更好。基本就是这样:

#ad-container { background-image: url(...);background-repeat:none; }

投放广告后,图片将会被覆盖。如果不是,备份将在那里为您服务。

答案 3 :(得分:-1)

广告投放成功后,IFrame是否有图片代码?