找到基于单词的href

时间:2012-07-21 17:33:48

标签: javascript

我想在页面上找到一组链接,但前提是href包含单词" PlaySounds"我尝试了以下代码,但我得到了未定义。

    http://www.website.com/uno/PlaySounds.aspx?Id=546444456
    http://www.website.com/uno/PlaySounds.aspx?Id=347457458
    http://www.website.com/uno/PlaySounds.aspx?Id=275656573
    http://www.website.com/uno/PlaySounds.aspx?Id=976645654

    hrefs = Array.prototype.filter.call(document.getElementsByTagName("a"), function(node) { 
            return node.href.indexOf("PlaySounds") === 0;
        }).map(function(node) {
            return node.href;
        });

randomHref = hrefs[Math.floor(Math.random() * hrefs.length)];

    console.log(randomHref );

2 个答案:

答案 0 :(得分:1)

Array.indexOf返回您要搜索的子字符串的起始位置,如果未找到则返回-1。

尝试更改

node.href.indexOf("PlaySounds") === 0;

node.href.indexOf("PlaySounds") >= 0;

编辑:使用此功能测试

function randomHref() {
    hrefs = Array.prototype.filter.call(document.getElementsByTagName("a"), function(node) { 
        return node.href.indexOf("PlaySounds") >= 0;
    }).map(function(node) {
        return node.href;
    });
    return hrefs[Math.floor(Math.random() * hrefs.length)];
}

在这些链接上:

<a href="http://www.website.com/uno/PlaySounds.aspx?Id=2">asd</a>
<a href="http://www.website.com/uno/PlaySounds.aspx?Id=4">asd</a>
<a href="http://www.website.com/uno/PlaySounds.aspx?Id=1">asd</a>
<a href="http://www.website.com/uno/PlaySounds.aspx?Id=3">asd</a>

答案 1 :(得分:0)

为什么=== 0

hrefs = Array.prototype.filter.call(document.getElementsByTagName("a"), function(node) { 
        return node.href.indexOf("PlaySounds") !== -1;
    }).map(function(node) {
        return node.href;
    });

randomHref = hrefs[Math.floor(Math.random() * hrefs.length)];

console.log(randomHref );