javascript - 无论如何要在 iPad 上加载页面后用 javascript 删除所有 <a href=> 标签?

标签 javascript iphone html ipad uiwebview

我知道在带有 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/

相关文章:

iphone - 如何在IOS中为CLLocationManager设置Radius

ios - Cordova :GoogleService-info.plist 的问题

javascript - jQuery 遍历列表项并获取 data-imgid 属性值

html - 基于 Web 的广播和音频流服务是否使用 Web Audio API 进行播放?

javascript - 无法将超大图像与 div 的中心对齐

javascript - 无法在expressjs中为前端和后端使用多个静态路径

jquery - 使用所选对象的选项动态创建 div

ios - 当已经有新帧时如何跳过 didReceiveFrame ?

javascript - 添加到数组/集合后的 KnockoutJS 设置焦点

javascript - window.onload 不调用函数