我已在我的网站中集成了一个网络软件,我想删除显示的恼人的ALT标题标签。问题是我无法访问html,因为该软件位于远程服务器上。我唯一能做的就是使用外部CSS或Javascript,因为这些文件位于我自己的主机上,可以与远程软件进行交互。
代码是:
<td class="available" title="Click here please" onclick="window.top.location.href='http://www.site.com'"></td>
我进行了一些搜索/测试,但似乎无法使用CSS来隐藏标题。我在这里看到了一个javascript解决方案:
Turn Off Alt Tags On Links With CSS?
但这对我的情况不起作用。使用Jquery也不适合我。
有什么建议吗?
答案 0 :(得分:2)
调整您指向的代码,使其查看td
元素而不是a
,应该有效:
var elements = document.getElementsByTagName('td');
for (var i = 0, len = elements.length; i < len; i++)
{
elements[i].removeAttribute('title');
}
答案 1 :(得分: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));
上
更新:如果您需要支持没有上述方法的旧浏览器,则可以使用以下内容。
的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));
上