使用nearest()和$(this)来选择元素

时间:2014-08-12 23:36:46

标签: jquery

我最近才开始学习jquery,并且我尝试使用closest()方法和$(this)来找到最接近的类" ion-loading-c"并为其添加一个类。我没有犯错,所以我不确定自己做错了什么。这是我的javascipt:

$(function(){
  $('.ion-plus').click(function(e) {
      $(this).closest('.ion-loading-c').addClass('blue');
  });
});

这是我的HTML:

<i class="icon ion-loading-c"></i>

<a href="{{ URL::route('purchase') }}/{{ $i->id }}">
    <span class="text-content">
        <div class="image-row">
            <i class="icon ion-plus ion-icon-add"></i>
            <i class="icon ion-heart ion-icon-add"></i>
        </div>
        <div id="id" class="hidden cart-add-ajax">{{ $i->id }}</div>
        <div class="image-row image-text">
            <span>{{ $i->item }}</span>
        </div>
    </span>
</a>

2 个答案:

答案 0 :(得分:2)

这是因为.ion-loading-c.ion-plus没有直接关系 - 使用closestprev

$('.ion-plus').click(function(e) {
    $(this).closest('a').prev(".ion-loading-c").addClass('blue');
});

答案 1 :(得分:0)

我不知道这是否能解决您的问题

$(function(){
  $('.ion-plus').click(function(e) {
    var $this;
    $this = $(this);
    if ($this.has(".ion-loading-c")) {
      return $(this).closest('.ion-loading-c').addClass('blue');
  });
});