如何在使用for循环时检查hasclass

时间:2014-08-04 06:18:47

标签: jquery

<div style="display: block;" class="Topping-details" id="4">
   <section id="topping_tsection_4">
      <aside>
         <h6 class="tdHeading">Quantity      1</h6>

            <section class="secclass"><a  topping_id="1"  topp_name="Honey with Chocolate Sauce  10 ML" top_price="25" class="tpActive" >Honey with Chocolate Sauce  10 ML</a>
         </section>

         <section class="secclass"><a  topping_id="2"  topp_name="Honey with Carmel  10 ML" top_price="25" class="tpActive" >Honey with Carmel  10 ML</a>
         </section>
      </aside>


      <aside>

         <h6 class="tdHeading">Quantity 2</h6>
         <section class="secclass"><a qt_val="111" top_price="25"  >Honey with Chocolate Sauce  10 ML</a>
         </section>

         <section class="secclass"><a qt_val="111" top_price="25"   class="tpActive">Honey with Carmel  10 ML</a>
         </section>

      </aside>
   </section>
</div>

嗨,

这是我的HTML响应,点击按钮我试图获取最后一个部分的top_price的属性值

我试过这种方式,但它没有工作

http://jsfiddle.net/6y6h7/1/

     $(document).on("click", ".work", function() {

var id_attr_val=4;

$(this).find(".Topping-details").find('section#topping_tsection_'+id_attr_val+' aside:last').find('.tpActive').each(function () {
    var top_price = $(this).attr("top_price");
    alert(top_price);
        });

});

1 个答案:

答案 0 :(得分:2)

因为.Topping-details不是点击按钮(.work)的后代,您需要进行文档范围搜索以查找这些元素,而不是尝试在点击的元素中找到这些元素

$(".Topping-details").find('section#topping_tsection_' + id_attr_val + ' aside:last').find('.tpActive').each(function () {
    var top_price = $(this).attr("top_price");
    console.log(top_price);
});

演示:Fiddle

但是因为元素的Id必须是唯一的,所以你可以使用id-selector

来搜索目标元素
$('#topping_tsection_' + id_attr_val + ' aside:last').find('.tpActive').each(function () {
    var top_price = $(this).attr("top_price");
    console.log(top_price);
});

演示:Fiddle