我有以下
HTML:
<html> <head><title>Title</title></head> <body> <div id='div2'> <a href='#'>1</a> <div id='div1'> <a href='#'>2</a> </div> </div> </body> </html>
…以及以下Javascript代码,我正在通过Greasemonkey运行:
var nodes = document.body.getElementsByTagName('a'); for (var i = 0; i < nodes.length; i++) { var node = nodes[i]; node.parentNode.removeChild(node); }
我希望它能找到并删除所有A标签;相反,它找到第一个,但不是第二个.据我所知,第二个A标签的嵌套方式有困难.
有人可以让我知道如何删除所有标签,使用getElementsByTagName?有理由我不想使用XPath,如果可能的话.
解决方法
捕获长度并按相反顺序删除.这将消除副作用.
var nodes = document.body.getElementsByTagName('a'); for (var J=nodes.length-1; J >= 0; J--) //-- Kill the last,first,to avoid orphan problems. { var node = nodes[J]; if (node) { node.parentNode.removeChild (node); } }
但是更好的方式……
将此指令添加到标头中:
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
然后你的整个代码变成:
$("a").remove ();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。