0

このようにマークアップされた一連のimgボックスがあります

カウントを取得してこれを取得したい:

<div data-location-id="6" class="img-box-set">my img</div>

私は持っています:

var location_id = $(this).data('location-id');
// fixed per comment #1 below
var count_of=$('.img-box-set[data-location-id='+location_id+']').length;
alert("here is count_of" + count_of);

しかし、長さは常に0を返します。セレクターまたは長さプロパティで何か問題がありますか?

また、私が4を持っていると仮定すると、どの位置にいるのか(0ベースまたは1ベースのいずれか)をどのように判断しますか?

どうも

編集#1 だから、これはうまくいくと思いますが、(@ jackごとに)ドキュメントを索引付けしていません。(更新-これは機能します;構文エラーがありました)

var index_box=$('.img-box-set[data-location-id='+location_id+']').index(this);
alert("here is the index" + index_box); 
4

2 に答える 2

1

本当に で検索したい場合は.data()、次のようにします。

var count = $('.img-box-set')
    .filter(function() {
        return $(this).data('location-id') == location_id;
    })
    .length

を使用して位置を返します。.index()

于 2012-05-15T14:08:11.270 に答える
0
$(".img-box-set").each(function(index,value){

   alert(index);// The position of image box set

   var location_id = $(this).data('location-id');
   var count_of=$('.img-box-set[data-location-id="'+location_id+'"]').length;
   alert("here is count_of" + count_of);


});

すべての長さを知りたい場合は、.img-box-set単に次のように書くことができます

$(".img-box-set").length関数で

位置

関数内で実行できます

 var elem_id =$(this).attr("id");
 var pos=-1; 
  $(".img-box-set").each(function(index,value){ 

     if($(this).attr("id")==elem_id){
        pos=index;
     }
});
alert(pos);

セレクターは、要件に応じて$(".img-box-set")またはすることができ$('.img-box-set[data-location-id="'+location_id+'"]') ます。

于 2012-05-15T14:11:33.793 に答える