Javascript 用标题替换链接文本
Javascript replace linktext with title
我经常访问一个包含大量以下格式链接的网站:
<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
我希望有人能帮我解决这个问题。提前致谢。
编辑:
感谢您的快速回复,我会在每个答案中添加评论并反馈,是否解决了问题。
奇怪的是,none 这些解决方案有 100% success-rate。有时我必须重新加载页面 2-3 次才能使代码正常工作。 (不是 cache-problem,我发誓)
我虽然它可能必须完全加载页面才能工作,但是当我在 运行 代码之前添加超时时,它只适用于几个 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"));
};
我经常访问一个包含大量以下格式链接的网站:
<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
我希望有人能帮我解决这个问题。提前致谢。
编辑: 感谢您的快速回复,我会在每个答案中添加评论并反馈,是否解决了问题。
奇怪的是,none 这些解决方案有 100% success-rate。有时我必须重新加载页面 2-3 次才能使代码正常工作。 (不是 cache-problem,我发誓) 我虽然它可能必须完全加载页面才能工作,但是当我在 运行 代码之前添加超时时,它只适用于几个 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"));
};