$.makeArray
jQueryオブジェクトではなく、ネイティブJavaScript配列を返します。ネイティブJavaScript配列には、のようなjQueryメソッドはありません.attr()
。これは理にかなっていますか?
関数を渡すか、すでにjQueryオブジェクトであるfunction-localを渡すので、に渡すvideoLinks
ことは$.makeArray
単に意味がありません。だから、これはあなたがやろうとしていることに沿っていると思います:videoLinks
videoLinks
function videoLinks() {
$("a[id^=a_l_]").each(function() {
console.log(this.href);
});
}
これにより、で始まるすべての要素のhref
属性がログに記録されます。おそらく代わりに、それらをログに記録するのではなく、それらの属性の配列を構築したいと思うでしょう。次に、を使用します:<a>
id
'a_l_'
href
.map()
.get()
function videoLinks() {
var hrefs = $("a[id^=a_l_]").map(function() {
return this.href;
}).get(); // ← note the .get() call
}
私の最終的な目標は、リンクの1つをランダムに返すことです
その後、あなたはほとんどそこにいます。配列からランダムな要素を取得するだけですhrefs
:
function videoLinks() {
var hrefs = $("a[id^=a_l_]").map(function() {
return this.href;
}).get(); // ← note the .get() call
var randHref = hrefs[Math.floor(Math.random() * hrefs.length)];
console.log(randHref);
}