私は$.each
関数内に配列を持っています。新しい配列や変更された配列を作成するために反復処理を行いたい。しかし、私は外$.each
ループから$(this)
にアクセスする必要があります。jQuery配列.mapの内部。
// 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
を渡そうとしています。
問題の一部ではありませんが、 '$ selector.each(...) 'と書くこともできます。 – Pointy
あなたは ');と思うタイプがあります。 – pimvdb
@pimvdbはい、これも問題でしたが、 "長さ0から読み取れません"というエラーは発生しませんでした。私はコードから[私がした](http://jsfiddle.net/Pointy/XcvUS/1/)でそのエラーを取得しません。 – Pointy