簡體   English   中英

Javascript用標題替換鏈接文本

[英]Javascript replace linktext with title

我定期訪問一個包含以下格式鏈接的網站:

<a href="SomeURL" title="SomeTitle" id="SomeID">SomeText</a>

可悲的是,SomeText部分在大多數情況下是無用的,我想用SomeTitle代替它。 因此,我用Greasemonkey腳本(將Javascript插入網頁)嘗試了運氣。 我想修改頁面上的所有鏈接。

我的目標是這樣的:

<a href="SomeURL" title="SomeTitle" id="SomeID">SomeTitle</a>

我已經嘗試過運氣了,但是由於我對javascript並不熟悉,所以到目前為止,這當然是行不通的...

document.links.innerHTML = document.links.title

我希望有人可以幫助我解決這個問題。 提前致謝。

編輯:感謝您的快速答復,我給每個答案添加評論,並提供反饋,以解決問題。

奇怪的是,這些解決方案都沒有100%的成功率。 有時我必須重新加載頁面2-3次才能使代碼正常工作。 (我發誓,這不是緩存問題)盡管我可能必須完全加載頁面才能正常工作,但是當我在運行代碼之前添加超時時,它僅適用於幾個div,而不適用於整個頁面。 這只是其他信息,不需要進一步的幫助。 我很好,如果我有時不得不重新加載頁面。

加載文檔后:

var theLink = document.getElementById('SomeID');
theLink.innerHTML = theLink.getAttribute('title');

或者您的所有鏈接:

var elements = document.getElementsByTagName('a');
[].forEach.call(elements, function(element) {
  element.innerHTML = element.getAttribute('title') || element.innerHTML;
});

這是我的解決方案。

var links = document.getElementsByTagName('a');  // get all the links.
for (var i = 0; i < links.length; i++) {
    var link = links[i];
    // It will replace text only if `title` is present.
    link.innerText = link.getAttribute('title') || link.innerText;
}

這應該夠了吧:

var i, links = document.getElementsByTagName('a');
for(i in links) { 
    var title = links[i].title;
    if(title) {
        links[i].innerHTML = title;
    }   
}

使用jQuery:

for (var i = 0; i < $("a[title]").length; i++) {
     $("a[title]:eq("+i+")").text($("a[title]:eq("+i+")").attr("title"));
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM