-3

我在我的网站中集成了一个网络软件,我想删除显示的烦人的 ALT 标题标签。问题是我无法访问 html,因为该软件位于远程服务器上。我唯一能做的就是使用外部 CSS 或 Javascript,因为这些文件位于我自己的主机上并且可以与远程软件交互。

代码是:

<td class="available" title="Click here please" onclick="window.top.location.href='http://www.site.com'"></td>

我进行了一些搜索/测试,但似乎无法使用 CSS 来隐藏标题。我在这里看到了一个javascript解决方案:

关闭带有 CSS 的链接上的 Alt 标签?

但这不适用于我的情况。使用 Jquery 也不适合我。

有什么建议吗?

4

2 回答 2

2

调整您指向的代码,使其查看td元素而不是a,应该可以:

var elements = document.getElementsByTagName('td');
for (var i = 0, len = elements.length; i < len; i++)
{
    elements[i].removeAttribute('title');
}
于 2013-05-08T21:38:34.487 回答
0

这是一个可能的解决方案,使用document.createTreeWalker从选定元素及其所有子元素中删除属性。

HTML

<div id="removeHere" title="titled 0">
    <div title="titled 1">some text 1</div>
    <div title="titled 2">some text 2
        <div title="titled 3">some text 3
            <div title="titled 4">some text 4</div>
        </div>
    </div>
    <div title="titled 5">some text 5</div>
</div>
<div title="titled 6">some text 6</div>

Javascript

(function (global) {
    function removeAttributeWalker(node, attribute) {
        var treeWalker = document.createTreeWalker(
        node,
        NodeFilter.SHOW_ELEMENT, {
            acceptNode: function () {
                return NodeFilter.FILTER_ACCEPT;
            }
        },
        false);

        node.removeAttribute(attribute);

        while (treeWalker.nextNode()) {
            treeWalker.currentNode.removeAttribute(attribute);
        }
    }

    global.addEventListener("load", function onLoad() {
        global.removeEventListener("load", onLoad);
        removeAttributeWalker(document.getElementById("removeHere"), "title");
    }, false);
}(window));

jsfiddle 上

更新:如果您需要支持没有上述方法的旧浏览器,则可以使用以下方法。

Javascript

(function (global) {
    function removeAttributeWalker(node, attribute) {
        if (node.nodeType === 1) {
            node.removeAttribute(attribute);
            node = node.firstChild;
            while (node) {
                removeAttributeWalker(node, attribute);
                node = node.nextSibling;
            }
        }
    }

    global.addEventListener("load", function onLoad() {
        global.removeEventListener("load", onLoad);
        removeAttributeWalker(document.getElementById("removeHere"), "title");
    }, false);
}(window));

jsfiddle 上

于 2013-05-08T22:16:17.430 回答