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 回答