找到包含单词的特定链接并添加到数组

时间:2012-07-10 08:06:32

标签: javascript

我正在尝试在页面中搜索包含单词playgame的链接。如果他们找到了,那么我将它们添加到数组中。之后,从数组中选择一个随机值并使用window.location。我的问题是它说我的indexof未定义。我不确定这是什么意思,因为我仍在学习使用javascript的这个功能。

链接示例

<a href="playgame.aspx?gid=22693&amp;tag=ddab47a0b9ba5cb4"><img src="http://games.mochiads.com/c/g/running-lion-2/_thumb_100x100.jpg"></a>

的javascript

var gameLinks = document.getElementsByTagName("a");
if (gameLinks.href.indexOf("playgame") != -1) {
    var links = [];
    links.push(gameLinks.href);
    var randomHref = links[Math.floor(Math.random() * links.length)];
    window.location = randomHref;
}

1 个答案:

答案 0 :(得分:2)

  

我的问题是它说我的indexof未定义

不是indexOf,你正在调用它。 gameLinksNodeList,它没有href属性。您需要循环遍历列表的内容以查看单个元素的href属性。 E.g:

var index, href, links, randomHref, gameLinks;
gameLinks = document.getElementsByTagName("a");
// Loop through the links
links = [];
for (index = 0; index < gameLinks.length; ++index) {
    // Get this specific link's href
    href = gameLinks[index].href;
    if (href.indexOf("playgame") != -1) {
        links.push(href);
    }
}
randomHref = links[Math.floor(Math.random() * links.length)];
window.location = randomHref;

更多探索: