有没有办法让 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/