2012-11-15 90 views
0

我如何使用JavaScript的香草+正则表达式来删除图像元素,根据它们的来源吗?删除图像元素基于源

我读了网络应用程序中的RSS提要。如果源代码中包含单词“comments”,我想删除某些图片元素。

之前它呈现到页面上(从HTTP请求刚拔掉,并仍处于“字符串”),这将是理想的编辑RSS提要。

更新: 感谢您的答复。在每篇文章的最底部,他们都包含了一个评论链接......这是我想要删除的内容。 这里是在每个制品的最末尾的代码:

<a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ADDRESS/FEED"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/[ADDRESS]/[FEED]" /></a>

也时,[饲料]值每篇文章的变化。那么最好是检查单词'comments'还是检查源代码是否以x开头?

+0

XML解析器可能会比正则表达式和更好地工作表演肯定会更好。但是,如果您想使用RegEx,请发布RSS源的小样本,然后写一个。 – evanmcdonnal

+0

你是什么意思他们的源代码包含单词“评论”?什么部分来源?我会假设一个属性,那么哪一个?而且不需要正则表达式来做到这一点。 –

+1

@ user1689607'

回答

2
var images = document.getElementsByTagName('img'); 
for (var i = 0; i < images.length; i++) { 
    var img = images[i]; 
    if (img.src.indexOf('comments') > 0) { 
     var link = img.parentNode; 
     link.parentNode.removeChild(link); 
    } 
} 
  • 线1:获取页面
  • 线2上的所有图像元素的列表:遍历目录,删除那些谁的SRC有词“评论”。这是通过调用任何字符串对象的indexOf方法完成的。 Detailed here
+0

updated: I made a small mistake in the previous answer. now fixed. – lins05

+0

Note: this will remove the _image_. The question currently seems to ask how to remove its _parent_. –

+0

Hi. Thanks for your reply. You're code needed a bit of tweaking, but this works. Instead of removing the parent OR image (that threw exceptions), I've simply hidden the element ' var images = document.getElementsByTagName('img'); for (var i = 0; i < images.length; i++) { var img = images[i]; if (img.src.indexOf('comments') > 0){ img.style.display =“none”; } }' –

0

你可以试试这个

var imgs=document.images; 
for(i=0;i<imgs.length;i++) 
    if(imgs[i].src.test('comments')) 
     imgs[i].parentNode.parentNode.removeChild(imgs[i].parentNode);​ 

DEMO

0

感谢您的回复。 lins05提出了一些我稍微调整过的代码。注意:不是删除元素或它的父项,下面的代码只是隐藏元素。

var images = document.getElementsByTagName('img'); 
    for (var i = 0; i < images.length; i++) { 
     var img = images[i]; 
     if (img.src.indexOf('comments') > 0) { 
      img.style.display = "none"; 
     } 
    } 

rss feed的文章列表存储在页面上的模型中。这将是更理想的砍评论缩小模型..然而“每一个文章是页面上的时间隐藏元素”目前的方法工作得很好:)