Javascript用标题

时间:2015-10-12 11:50:39

标签: javascript href rename greasemonkey

我经常访问一个网站,其中包含以下格式的大量链接:

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

可悲的是,部分SomeText在大多数情况下都没用,我想用SomeTitle替换它。因此,我尝试使用Greasemonkey-Script(将Javascript注入网页)。我想修改页面上的所有链接。

我的目标是:

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

我已经尝试过运气了,但由于我不熟悉javascript这是我到目前为止所做的全部,当然它没有用......

document.links.innerHTML = document.links.title

我希望有人可以帮我解决这个问题。提前谢谢。

修改 感谢您的快速回复,如果能够解决问题,我会在每个答案中添加评论并提供反馈。

奇怪的是,这些解决方案都没有100%的成功率。有时我必须重新加载页面2-3次才能使代码正常工作。 (不是缓存问题,我发誓) 我虽然可能必须完全加载页面才能工作,但是当我在运行代码之前添加超时时它只适用于几个div而不是整个页面。 这只是其他信息,无需进一步的帮助。我很好,如果我有时需要重新加载页面。

4 个答案:

答案 0 :(得分:0)

加载文档后:

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;
});

答案 1 :(得分:0)

这是我的解决方案。

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;
}

答案 2 :(得分:0)

应该这样做:

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

答案 3 :(得分:0)

使用jQuery:

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