我知道在带有 UIWebView(我正在使用的)的 iPad 上加载页面后,我可以运行一行 javascript 代码,但我不知道我可以输入什么来检查并删除所有标签.我也希望能够只对页面的某些部分执行此操作,例如仅删除特定标签内的标签。
最佳答案
您可以使用 document.getElementsByTagName()
通过标签名称获取所有元素.所有链接都有标签名称 a
.您可以通过设置它们的 display
来直观地删除它们样式为 none
.
var elements = document.getElementsByTagName('a');
for (var i = 0; i < elements.length; i++) {
elements[i].style.display = 'none';
}
要删除某个标签内某个标签的元素,只需调用getElementsByTagName()
在有问题的元素上。假设您想隐藏 <li>
中的所有链接。仅:
var listitems = document.getElementsByTagName('li');
for (var i = 0; i < listitems.length; i++) {
var anchors = listitems[i].getElementsByTagName('a');
for (var j = 0; j < anchors.length; j++) {
anchors[j].style.display = 'none';
}
}
element.parentNode.removeChild(element)
也是一个很好的,但它在标准 for
中不能很好地工作环形。您需要向后循环:
var elements = document.getElementsByTagName('a');
for (var i = elements.length; i-- > 0;) {
var element = elements[i];
element.parentNode.removeChild(element);
}
根据明确的功能要求更新:因此您想要替换链接元素为代表链接原始内容的文本节点?您可以使用 Node.replaceChild()
为了这。这是一个启动示例:
var elements = document.getElementsByTagName('a');
for (var i = elements.length; i-- > 0;) {
var element = elements[i];
var text = document.createTextNode(element.firstChild.nodeValue);
element.parentNode.replaceChild(text, element);
}
关于javascript - 无论如何要在 iPad 上加载页面后用 javascript 删除所有 <a href=> 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3216798/