如何在jquery中选择项目类?

时间:2012-08-20 17:46:20

标签: javascript jquery

我有两个图像(.field-img),包装在一个容器(.group-container)中,

每个图像都在唯一的字段ID中,因此我的tpl被分解为

<div class=group-container>
 <div id=field1>
  <div class=field-img>
 </div></div>
 <div id=field2>
  <div class=field-img>
 </div></div>
</div>

我的js是

$(".group-container .field-img").click(function() {
 alert(".group-container .field-img");

我想要的是自动检测图像是属于field1还是field2。

所以我可以提醒(“。group-container .field1 / 2 .field-img”);

我该怎么做?

感谢您的帮助

5 个答案:

答案 0 :(得分:3)

$(".group-container .field-img").click(function() {
   var field=$(this).parent().attr('id');
});

答案 1 :(得分:1)

Izzey解决方案的另一种选择是使用.closest,其属性以selector(或classname)开头,因为这样的div更适合具有公共类

$(".group-container .field-img").click(function() {
    var field = $(this).closest("[id^=field]")[0].id;
});

或使用通用的类名

HTML

<div class=group-container>
 <div class="field" id=field1>
  <div class=field-img>
 </div></div>
 <div class="field" id=field2>
  <div class=field-img>
 </div></div>
</div>

JS

$(".group-container .field-img").click(function() {
    var field = $(this).closest(".field")[0].id;
});

答案 2 :(得分:1)

$(".group-container .field-img").click(function() {
   var field = this.parentNode.id;
   alert (".group-container ." + field + " .field-img");
});

答案 3 :(得分:0)

$(".group-container .field-img").each(function() {
        $(this).click(function(){   
          var fieldid=$(this).parent().attr('id');
        });
});

答案 4 :(得分:0)

由于一个元素在另一个元素内部,因此无论如何都会向上传播,因此您可以始终将点击绑定到父元素并执行:

$('div[id^="field"]').on('click', function() {
    alert(".group-container "+this.id+" .field-img");
});

FIDDLE

甚至动态地获取它们:

$('div[id^="field"]').on('click', function(e) {
    alert('.'+this.parentNode.className+" "+this.id+" ."+e.target.className);
});

FIDDLE