我想制作一些JavaScript代码,这些代码一旦运行就会为每个链接添加一个标题,该链接就是它所指向的页面的标题。抱歉,我能确定的是...
<body onload="replace()">
<script>
function replace() {
document.getElementsByTagName("a").title=this.href;
}
</script>
<a href="hi">hi</a>
<a href="hi2">hi2</a>
<a href="hi3">hi3</a>
</body>
但是什么也没发生,我无法弄清楚。
答案 0 :(得分:1)
更简单,只需正确放置脚本即可:
00:00:00-00:10:00
答案 1 :(得分:0)
getElementsByTagName
返回元素的集合,您需要使用循环为每个链接设置任何内容。
<body onload="replace()">
<script>
function replace() {
// find all links
var links = document.getElementsByTagName("a");
// loop the collection and set title to each one
for (var i = 0; i < links.length; i++) {
links[i].title = links[i].href;
}
}
</script>
<a href="hi">hi</a>
<a href="hi2">hi2</a>
<a href="hi3">hi3</a>
</body>
答案 2 :(得分:0)
Afaik,无法从JS中的其他页面检测页面标题。如果您事先知道标题,则可以创建一个映射对象并像这样遍历链接:
var map = [['link','title'],['link','title']];
$('a').each(function() {
for(var i=0; i<map.length; i++) {
if(map[i][0] == $(this).attr('src'))
$(this).attr('title', map[i][1]);
}
});
这应该基于将每个链接的src属性与映射对象中的链接进行匹配为基础,为所有链接设置相应的页面标题
答案 3 :(得分:0)
您可以使用window.location.href代替this.href。另外,您可能需要遍历标记列表中的每个链接:
function start() {
var links = document.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
links[i].title = window.location.href;
}
}
window.load = start();
<a href="hi">hi</a>
<a href="hi2">hi2</a>
<a href="hi3">hi3</a>
答案 4 :(得分:0)
尝试这个答案,我试图添加评论,以便您可以了解发生了什么:
bool