2012-07-10 72 views
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; 
} 

回答

2

我的問題是,它說我的indexOf是不確定的

indexOf,這件事你叫它上。 gameLinksNodeList,它沒有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; 

探索更多:

+0

謝謝是的,我忘了補充對於那些'var'變量秒。我更新了我的帖子。我測試你的代碼,但數組只填充undefined字。這是否意味着「playgame」字符串沒有找到? – 2012-07-10 08:21:57

+0

@ Mr.1.0 - 在T.J.的代碼中,'links.push(gameLinks.href);'應該是'links.push(href);'。我編輯了T.J.的代碼來糾正。 – jfriend00 2012-07-10 08:23:45

+0

非常感謝你的時間和幫助。我非常感謝。 – 2012-07-10 08:29:12

相關問題