2010-07-27 70 views
0

当Img有src =“”时,我需要删除或隐藏Img标签或其父项。如何查找具有src null的Img标签。并删除它

我有一个剧本,但它不工作..

window.onload=function(){ 
    var imgs = document.getElementsByTagName("img"); 
    for(var i = 0; i < imgs.length; i++) 
    { 
     var img = imgs[i]; 
     if(img.src==""){ 
     img.parentNode.removeChild(img); 
     } 
    } 
} 

它没有找到有IMG SCR = “”。而在IE和Safari中则显示十字标志(红色)。

回答

1

您可以通过用户的jQuery为:)

$(document).ready(function(){ 
    $("img").each(function(){ 
     if($(this).attr("src") == null || $(this).attr("src") == '') 
     { 
      $(this).remove(); 
      } 
    }); 
}); 

解决方法是设置DIV容器哪里有新闻作为显示器的风格:无;然后一旦th执行每个循环,您将div设置为可见。

在这里你有一个代码样机..

//html (iframe content) 
<div id="newsContainer" style="display:none;"> 
</div> 

$(document).ready(function(){ 
    $("img").each(function(){ 
     if($(this).attr("src") == null || $(this).attr("src") == '') 
     { 
      $(this).remove(); 
      } 
    }); 
    $("#newsContainer").show(); 
}); 
+1

thanx的回复..我米实施此 – Anil 2010-07-27 12:51:24

+0

没有问题..打勾它作为回答:) – 2010-07-27 13:13:36

+0

嘿大卫.. thanx的答复。我为我工作。我会将此标记为答案。但我需要更具体的答案。我有一个.asp,我有iframe在这个和这个iframe填充新闻和图像。 Iframe正在使用HTML页面。我把这个代码放在html页面上。但场景首先是IE正在显示红色十字标记,并且在所有页面已经打包完成后,它将删除img标记。我在标签onload事件上应用了我的脚本,但它没有奏效。对此有任何帮助。 – Anil 2010-07-27 13:14:40

1

你可以使用jquery添加功能,这将使得这个跨浏览器兼容,而不会发飙。你的代码最终会看起来像

$(document).ready(function() { 
    $("img[src='']").remove(); 
}); 
+1

不是说downvoted的人,但在jQuery的可能的JavaScript,JavaScript的心不是jQuery的。 – 2010-07-27 12:41:18

+0

这些天,每个人都使用jQuery。不是我自己不喜欢jQuery,但是这表明JS的实现方式(跨浏览器兼容性?)和客户端JS的功能集都有严重问题。太多简单的任务需要24,000个字符(猜测)库。将所有这些功能推入客户端JS将与现在所做的所有JS解释器优化一样多,但会导致更少的流量... – MvanGeest 2010-07-27 12:45:53

+0

Thanx for reply ..我需要把它放在准备好的事件上.. mi right – Anil 2010-07-27 12:49:43

相关问题