2012-12-16 458 views
-4

所以我有一個div,#footer-float,爲此我只想在頁面加載時自動刪除所有「標題」屬性,而不編輯鏈接本身的標記(它們是由MediaWiki自動生成的)。基本上,小小的工具提示很突兀,並妨礙了閱讀鏈接所說的內容。如何從div中的所有鏈接中刪除「title」屬性?

我可以很容易地用jQuery來做到這一點,我想,但是,如果這可能我會用它來裝載整個庫。

任何想法?謝謝。

+4

問題鍵入 「Pleaze給我德codez」 都不是很歡迎的。首先嚐試,如果出現問題,請使用附加的代碼提問,如果可能,請使用jsFiddle示例。 – elclanrs

+0

@elclanrs:公平點。 –

+0

@elclanrs,肯定的事情。我會記住,但我不知道從哪裏開始。 –

回答

1

您可以通過循環所有鏈接元素並將標題設置爲空字符串來刪除所有標題:

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

Doh!我錯過了OP想要做鏈接。 +1,要簡單得多。 –

+0

兩者都有效,因爲在div中只有li和a。但是這更簡潔一點。謝謝你的時間! –

+0

@JoshK:是的,一旦我意識到我也認爲這是更好的答案。 –

2

這是一個相當直接的遞歸函數:

// 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,這將是 「a」在XHTML中。)

0
(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/

+0

你正在墮入* [隱式全局恐怖](http://blog.niftysnippets.org/2008/03/horror-of-implicit-globals.html)* there ... ;-) –

+0

所以只是放在一個匿名函數裏面呢? – Muqito

+0

@ MaggiQall:不,我'*仍*是一個隱式的全局。 –