如何根据源代码使用vanilla javascript + regEx删除图像元素?
我正在阅读带有网络应用的RSS源。我想删除某些图像元素,如果它们的源包含单词“comments”。
最好在将rss Feed渲染到页面之前对其进行编辑(仅从http请求中提取,仍然在'string'中)。
更新: 谢谢你的回复。在每篇文章的最底部,它们都包含一个评论链接......这就是我要删除的内容。 以下是每篇文章最后的代码:
<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>
另外,每篇文章的[feed]值也会发生变化。那么检查单词'comments'或检查源是否以x开头是否更好?
答案 0 :(得分: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);
}
}
indexOf
方法完成的。 Detailed here 答案 1 :(得分: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);
答案 2 :(得分: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的文章列表存储在页面上的模型中。将评论从模型中删除会更为理想..但是,每当文章在页面上时“隐藏元素”的当前方法都可以正常工作:)