2012-02-17 10 views
0

私はdiv内の画像のリストからすべてのids4をjquery配列に変換しようとしています。 これはhtmlです:イメージIDをjquery配列に取得する方法は?

<div id = "tdgallerys"> 
    <img id2="/uploads/ssp/album_2/image_10.jpg" 
     id3="Pic1" id4="1" 
     src="/uploads/ssp/album_2/thumbnails/image_10.jpg" 
     rel="scrollers"/>     
    <img id2="/uploads/ssp/album_2/image_11.jpg" 
     id3="Pic2" id4="2" 
     src="/uploads/ssp/album_2/thumbnails/image_11.jpg" 
     rel="scrollers"/>     
    <img id2="/uploads/ssp/album_2/image_12.jpg" 
     id3="Pic3" id4="3" 
     src="/uploads/ssp/album_2/thumbnails/image_12.jpg" 
     rel="scrollers"/>     
</div> 

は、これは私がしようとしているものです:

$(document).ready(function() {  
     var images = new Array(); 
     var count = 0; 
     var id = 0; 

     $("[rel='scrollers']").click(function (event) {    
      var dvImages = $('#tdgallerys img').attr('id4'); 
      $.each(dvImages , function (i) { 
       images.push(dvImages); 
       alert(dvImages); 
      }); 
      var desc = $(this).attr('id3'); 
     }); 

    }); 

を私は他のクリック機能からアレイにアクセスする必要があるので、私は後で

クリック機能の外に配列を入れて
$("#next").click(function (event) { 
      id = id++; 
      alert(images[id]); 
     }); 
+0

このコードでは何がうまくいかないのですか? –

答えて

2

あなたはのコレクションを反復処理する必要があります次に、id4属性を配列に挿入します。

$(document).ready(function() {  
    var images = []; 
    var count = 0; 
    var id = 0; 

    $("[rel='scrollers']").click(function (event) {    
     var dvImages = $('#tdgallerys img'); 
     $.each(dvImages, function(i) { 
      images.push($(this).attr("id4")); 
     }); 
     var desc = $(this).attr('id3'); 
    }); 
}); 

Example fiddle

それは独自の属性を作成、などid2id3id4が無効であり、あなたのページが検証しないという意味だろうということ、しかし注目に値します

。代わりに、HTML5の data属性を使用してください。

+0

ありがとうございました。 – Beginner

+0

26秒以上私は:) – Beginner

2

試してみてください。

$.each($('#tdgallerys img') , function (i) { 
    var id4 = $(this).attr('id4'); 
    images.push(id4); 
}); 
0ここ

の作業例 - >http://jsfiddle.net/PbBxV/1/

あなたは本当に顧客を格納するためのjQuery内 data()機能を使用する必要があります

はDOM要素の属性

2

試してみてください。

$(document).ready(function() {  
     var images = new Array(); 
     var count = 0; 
     var id = 0; 

     $("[rel='scrollers']").click(function (event) {    
      var dvImages = $('#tdgallerys img'); // collection of images 
      $.each(dvImages , function (i) { 
       images.push(i.attr("id4")); // for each image push value of id4 
       alert(i.attr("id4")); 
      }); 

     }); 

    }); 
+0

これは動作しません.... 'i'はjqueryオブジェクトではありません - その' int'はhttp://api.jquery.com/each/を参照してください – ManseUK

2

早く属性を選択しています。 $("#tdgallerys img")で選択した画像のセットをループし、そのセットの各画像の属性を取得する必要があります。

代わりにこれを試してみてください:

var dvImages = $('#tdgallerys img'); 
$.each(dvImages , function (i) { 
    images.push($(this).attr("id4")); 
}); 
1

あなたは各要素をウォークスルーする.mapを使用することができます(この場合のattrのID4)の後に、あなたが何であるかを取得するために:

var dvImages = $('#tdgallerys img').map(function(){ 
    return $(this).attr('id4'); 
}); 

例:http://jsfiddle.net/xs4h4/

関連する問題