JQuery массив .map внутри .each - PullRequest
       1

JQuery массив .map внутри .each

1 голос
/ 16 сентября 2011

У меня есть массив внутри $.each функции.Я хочу перебрать его, чтобы создать новый или измененный массив.Но мне нужно получить доступ к $(this) извне $.each loop:

// target these data attributes:
$selector = $('[data-my0], [data-my1], [data-my2]');

$.each($selector, function() {        

    var $this = $(this), // cache selector
        keys = ['my0', 'my1', 'my2']; // array of data keys

    // I want to use the keys array to make a vals array to this:
    // var vals = [$this.data('my0'), $this.data('my1'), $this.data('my2')];

    // This doesn't seem to work (can't read from length 0 error):
    var vals = $.map( keys, function( key ) { return $this.data(key); });

}); 

Я думаю, что это можно сделать, используя $.each или $.map, но я застрял здесь,Я знаю, $(this) обычно не используется с $.map, как с $.each.В этом случае я пытаюсь передать извне $this, который представляет селектор.

1 Ответ

2 голосов
/ 16 сентября 2011

Подождите - вы передаете "vals" в ваш "$ .map ()" cal вместо "keys":

var vals = $.map( keys, function( key ) { return $this.data(key); });

Здесь - это jsfiddle.Код работает просто отлично, хотя, не видя вашего фактического HTML, трудно точно знать, чего вы ожидаете.

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