如何在单击元素时知道根div

时间:2014-07-21 10:08:10

标签: jquery

我在两个div的

中有一个带有“secclass”类的section元素
<div id="69" class="activateUiHTML" data-role="collapsible">
   <div class="prd-items-detials">
   </div>
   <div style="" class="Topping-details" id="69">
      <section id="topping_tsection_69">
         <aside>
            <h6 class="tdHeading">Quantity      1</h6>
            <img src="images/arrow-topping.png">
            <section class="secclass"><a data-id="69" topping_id="17" id="69_ZZ_0_ZZ_0" topp_name="Honey with Carmel  10 ML" top_cost="30" class="tpActive" qt_val="69_ZZ_0_ZZ_0">Honey with Carmel  10 ML</a></section>
         </aside>
      </section>
   </div>
</div>

也在此

之下
<div id="addtoordersdiv69">
   <div class="prd-items-detials">
   </div>
   <div style="" class="Topping-details" id="69">
      <section id="topping_tsection_69">
         <aside>
            <h6 class="tdHeading">Quantity      1</h6>
            <img src="images/arrow-topping.png">
            <section class="secclass"><a data-id="69" topping_id="17" id="69_ZZ_0_ZZ_0" topp_name="Honey with Carmel  10 ML" top_cost="30" class="tpActive" qt_val="69_ZZ_0_ZZ_0">Honey with Carmel  10 ML</a></section>
         </aside>
      </section>
   </div>
</div>

我有一个监听器为section元素注册了它的类secclass

我的问题是当点击section元素时我怎么知道它是属于第一个div还是第二个div?

$(document).on("click", ".secclass a", function(e) {



});

我试过这种方式

 $(document).on("click", ".secclass a", function(e) {

if($(this).hasClass("activateUiHTML"))
{
    alert('from activehtmlui');
}

else
{
alert('from myorders'); 
}
    });

但它不起作用。

3 个答案:

答案 0 :(得分:1)

您可以使用下面的length检查父div的class="activateUiHTML"

$(document).on("click", ".secclass a", function(e) {

  if($(this).closest(".activateUiHTML").length > 0)
  {
    alert('from activehtmlui');
  }
  else
  {
    alert('from myorders'); 
  }
});

答案 1 :(得分:0)

$(document).on("click", ".secclass a", function(e) {
  var $divPar = $(this).parents("div");
  alert($divPar.attr("id"));
  });

通过分析$ divPa,您可以根据需要找到结果

答案 2 :(得分:0)

您可以使用类似:

$(document).on("click", ".secclass a", function(e) {

    console.log($(this).closest('.Topping-details').parent('div').index());

});

但我会使用类.module之类的div,然后使用jQuery:

$(this).closest('.module').index();

在jsfiddle上测试here

另外要小心,因为您在代码中使用了两次id="69"id="topping_tsection_69"id应该是唯一的。首选数据属性,例如data-id="69"data-id="topping_tsection_69"