Javascript массив из всех элементов с определенным именем класса - PullRequest
2 голосов
/ 03 ноября 2011

Я пытаюсь создать массив из элементов определенного класса на моей веб-странице.Массив должен получить значение атрибута videofile от всех тегов с классом videoLink.

Окончательные значения в массиве должны быть.

 cycling_large, ocean_medium, winecountry_part1



 <a class="videoLink"  videofile="cycling_large"  ></a>
 <a class="videoLink" videofile="ocean_medium" ></a>
 <a class="videoLink" videofile="winecountry_part1" ></a>

Я пробовал это, но не работает.

var values = $('.videoLink').map(function() { return this.attr('videofile'); }).get();

Заранее спасибо.

Ответы [ 3 ]

5 голосов
/ 03 ноября 2011
var links = document.getElementsByClassName("videoLink");
var values = [].map.call(links, function (el) {
  return el.getAttribute("videofile");
});

Потому что вы не jQuery для простых вещей.

Поддержка браузера:

1 голос
/ 03 ноября 2011

Измените return this.attr('videofile'); на return $(this).attr('videofile');. Вам нужно заключить this в $(), чтобы он стал объектом jQuery, который затем можно вызвать attr() on.

Пример: http://jsfiddle.net/r9xJn/

0 голосов
/ 03 ноября 2011
var result = $.map($('a.videoLink'), function(a) {
   return $(a).attr('videofile');
});

Рабочий пример: http://jsfiddle.net/hY6zM/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...