如何设置页面中所有链接的标题

时间:2019-06-05 22:13:50

标签: javascript html

我想制作一些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>

但是什么也没发生,我无法弄清楚。

5 个答案:

答案 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