如何在数组内搜索?

时间:2013-08-20 16:10:13

标签: javascript dom search

我有这个函数,它假设从页面获取所有标签,我正在尝试这些链接中的所有锚点,但我不断得到Object [object HTMLAnchorElement]没有方法错误, 我尝试过使用split,search和indexOf,但是一切都给了mes相同的错误,我做错了什么?

我知道我正在获取所有标签,第一个警报返回其总数。 这就是我所拥有的:

// 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");
    }
}

3 个答案:

答案 0 :(得分:1)

Anchor元素具有您可以使用的href属性:

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

您也可以在不使用选择器循环的情况下执行此操作。

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

然后你可以获得所有链接:

console.log([].map.call(aWithAnchors, function (link) {
    return link.href;
}));