我想在页面上找到一组链接,但前提是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 );
答案 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 );