如何从 div 中的所有链接中删除 "title" 属性?



所以我有一个div,#footer-float,为此我只想在页面加载时自动删除所有"title"属性,而无需编辑链接本身的标记(它们由MediaWiki自动生成)。基本上,小工具提示很突兀,妨碍了阅读链接的内容。

我认为,我可以用jQuery轻松地做到这一点,但是当这可能是我将使用它的全部内容时,我宁愿不加载整个库。

有什么想法吗?谢谢。

这是一个相当直接的递归函数:

// Clear the "title" on all child elements.
function removeTitleOnChildren(node) {
var child;
for (child = node.firstChild; child; child = child.nextSibling) {
if (child.nodeType === 1) { // Element
if (child.nodeName === "A") { // An "a" element
child.title = "";
}
removeTitleOnChildren(child);
}
}
}

用法:

removeTitle(document.getElementById("footer-float"));

(上面假设的是HTML,而不是XHTML;它对nodeName很重要,在XHTML中是"a"。

您可以通过循环遍历所有链接元素并将标题设置为空字符串来删除所有标题:

function onLoad() {
var div = document.getElementById('footer-float');
var links = div.getElementsByTagName('a');
for(var i = 0; i < links.length; i++) {
links[i].title = '';
}      
}
(function(){
var links = document.getElementById("footer-float").getElementsByTagName("a");
for(var i = 0; i < links.length; i++){
links[i].removeAttribute("title");
}
console.log(links);
})();

例:

http://jsfiddle.net/udyZa/6/

最新更新