javascript - 让 javascript 列出页面上所有内部 href=# 的列表

标签 javascript html dom hyperlink internal

有没有办法让 javascript 生成页面上所有内部 href=# 的数组?

这个想法是有一个下拉菜单,其中包含页面上所有 anchor 的链接。

最佳答案

根据您需要的浏览器支持,您可以执行以下操作:

var elems = document.getElementsByTagName( 'a' );

var hashes = Array.prototype.map.call( elems, function( v, i ) {
    return v.hash;
}).filter( function( v, i, a ) { return !!v && a.indexOf( v ) === i; });

您可以使用 MDN 提供的垫片获得对旧版浏览器的支持。

<小时/>

在您的评论中,您指出您需要名称而不是href

您可以这样做,它会自动带来更好的浏览器支持,但您仍然希望获得对 indexOf() 的支持。

var elems = document.getElementsByTagName( 'a' );

var names = [];

for( var i = 0, len = elems.length; i < len; i++ ) {
    if( elems[i].name && names.indexOf( elems[i].name ) === -1 ) {
        names.push( elems[i].name ); 
    }
}

关于javascript - 让 javascript 列出页面上所有内部 href=# 的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7450826/

相关文章:

javascript - 始终阻止元素 jQuery

javascript - 如何从层次结构中获取属性? (读)

jquery - 根据邻近度批量分配链接属性

javascript - 如何根据所选选项调用实例方法?

javascript - 在最新的 TypeScript(可能是 v1.5)示例中,@(at 符号)是什么意思?

JavaScript:将继承的类添加到数组不起作用

javascript - Firefox 和 Internet Explorer 中的全窗口 onClick 处理程序

javascript - meteor -检测无限循环

jquery - 当文本在 flash 或 jquery 谷歌地图上滚动时,固定 div 中的文本字体粗细会发生变化,为什么以及如何处理它?

javascript - 加载未知尺寸的图像并将其居中,保持纵横比和填充