繁体   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