1

我正在尝试在页面中搜索包含单词 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;
}
4

1 回答 1

2

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

不是indexOf,你打电话给它的东西。gameLinks是 a NodeList,它没有href属性。您需要遍历列表的内容以查看单个元素的href属性。例如:

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;

更多探索:

于 2012-07-10T08:08:02.823 回答