0

我有这个功能,它假设从页面中获取所有 a 标签,我正在尝试这些链接中的所有锚点,但我不断收到 Object [object HTMLAnchorElement] has no method errors,我尝试使用 split ,搜索和indexOf,但一切都给了我同样的错误,我做错了什么?

我知道我得到了所有的 a 标签,第一个警报返回它们的总数。这是我所拥有的:

// get all the link tags from the page
var a = document.getElementsByTagName('a');

//alert(a.length)


for (var i = 0; i < a.length; i++) 
{
    // check which links have an anchor within them
    if(a[i].search("#") > 1)
    {
        alert("yes");
    }
    else
    {
        alert("no");
    }
}
4

3 回答 3

1

锚元素有一个href可以使用的属性:

if (a[i].href.search("#") != -1)
于 2013-08-20T16:13:01.053 回答
1

您需要检查 href 属性,如下所示:

if(a[i].href.search("#") > -1)

NB 索引从 0 开始,因此您需要检查结果search()是否大于 -1

于 2013-08-20T16:14:30.443 回答
0

您也可以在不使用选择器循环的情况下做到这一点。

var aWithAnchors = document.querySelectorAll('a[href*="#"]');

然后你可以得到所有的链接:

console.log([].map.call(aWithAnchors, function (link) {
    return link.href;
}));
于 2013-08-20T16:41:39.670 回答