$.makeArray
возвращает родной массив JavaScript, а не объект JQuery. Родные массивы JavaScript не имеют методов jQuery, таких как .attr()
. Это начинает иметь смысл?
videoLinks
Переходя к $.makeArray
просто не имеет смысла, так как вы либо передавая функцию videoLinks
или функцию-местный videoLinks
, которая уже объект JQuery. Так что, я думаю, что это больше вдоль линий того, что вы пытаетесь сделать:
function videoLinks() {
$("a[id^=a_l_]").each(function() {
console.log(this.href);
});
}
Это будет регистрировать атрибут каждого элемента <a>
href
с id
, который начинается с 'a_l_'
. Возможно, вместо этого вы захотите создать массив этих атрибутов href
вместо их регистрации. Тогда вы будете использовать .map()
и .get()
:
function videoLinks() {
var hrefs = $("a[id^=a_l_]").map(function() {
return this.href;
}).get(); // ← note the .get() call
}
моя конечная цель состоит в том, чтобы вернуть одной из ссылок на случайных
Тогда вы почти там. Just get a random element from the hrefs
array:
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);
}
ничего себе, что просто :) хорошо, что это именно то, что я пытался достичь. Большое спасибо. –
ok да моя конечная цель - вернуть одну из ссылок наугад –
Теперь, почему вы не сказали так в первую очередь? ':)' Отредактировано. –