2011-07-01 6 views
0

のキーとして戻り値を割り当てる:jqueryのマップ - 私が持っている受信対象

<img class="images" src="src1"> 
    <img class="images" src="src2"> 
    <img class="images" src="src3"> 
    <img class="images" src="src4"> 

var pictures = $(".images").map(function(){ 
    return $(this).attr("src"); 
}) 

上記のコードは、新しい画像アレイを生成します。 jQueryマップ関数を使用して新しい画像オブジェクトを効率的に作成する方法について考えてください。私は次のようなことをしたい:

var pictures[key] = $(".images").map(function(){ 
    var key = $(this).attr("src"); 
    return key; 
}) 

...画像オブジェクトのキーとして戻り値を直接割り当てる。方法はありますか?

答えて

2

コレクションを反復処理できませんか?

var picObj = {}; 
$(".images").each(function() { 
    picObj[$(this).attr("src")] = '...'; 
}); 

demo - consoleに印刷されます)私はあなたが探している正確に理解していない

+1

はい、私は...しかし、私はマップを使用してクールなトリックがあるかもしれないと思った... – Hans

+0

@Marcel 'map' will alway配列を作成します。これはあなたの*クールなトリックです*。 – kapa

1

いますが、このような何かを行うことができます:

var pictures = []; 

    $(".images").each(function(){ 
    var src = $(this).attr("src"); 
    var img = $('<img>', { src: src}); 
    pictures.push(img) 

}) 

や写真があります画像オブジェクトの配列

+0

それは可能ですか?私は地図が何かを返すことを常に意図していると思った...あなたの例では、私はマップをそれぞれに置き換えることができなかった、私はcouldnt? – Hans

+0

@Narcelできます。ここで 'map'を使うのは全く意味がなく、誤解を招きます。 – kapa

+0

@Marcelはい、多分あなたはそれをそれぞれと置き換えるべきです! :) –

関連する問題