Вы использование параметров в анонимной функции $.each()
кажется немного странным. Смотрите, если это помогает:
jQuery.each(jQuery('.selected-item'), function(index, element) {
var selectpos = jQuery(this).position();
console.log(index + ':' + selectpos.left);
});
Вы подбирали все .selected-item
элементов внутри цикла each
, вместо этого вы можете обратиться к одному элементу, который на текущий индекс цикла с this
. Также анонимной функцией $.each()
передается два аргумента: index
текущего элемента в цикле и element
, который в этом случае будет элементом DOM в наборе .selected-item
элементов.
Вы также можете сделать это с помощью регулярного for
цикла:
var $selectedItems = $('.selected-item');
for (var i = 0, len = $selectedItems.length; i < len; i++) {
var selectpos = $selectedItems[i].position();
console.log(index + ':' + selectpos.left);
}
Преимущество делать это в том, что этот for
цикл будет работать быстрее. Вот пример jsperf, чтобы продемонстрировать разницу в производительности: http://jsperf.com/jquery-each-vs-for-loops/2 (пожалуйста, проигнорируйте изменения к тесту, кто-то опубликовал некоторый непристойный код)