1

playgameという単語を含むリンクをページで検索しようとしています。それらが見つかった場合は、それらを配列に追加します。その後、配列からランダムな値を選択し、を使用しますwindow.locationindexof私の問題は、私が未定義であると言っていることです。私はまだ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は、プロパティ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 に答える