Получить ближайший элемент в jQuery - PullRequest
0 голосов
/ 12 июня 2018

У меня проблема с получением элемента auth-message, когда я нажимаю на якорь guest-like.Похоже, jQuery не смог найти элемент auth-message.Я просто пытаюсь скрыть одно из сообщений, которые я нажимаю, а не каждое из них.

Это часть представления

@forelse($product->reviews as $review)
                <div class="mt-5 border border-dark pl-3 pt-3 pb-3 mb-3 rounded reviewid" data-reviewid="{{ $review->id }}">
                    <div class="title">
                        <h4>{{ $review->headline }}</h4>
                    </div>
                    <div class="user-rating">
                        <star-rating class="pr-3" :star-size="20" :read-only="true" :show-rating="false" :rating="{{ $review->rating }}"></star-rating>
                    </div>
                    <div class="body-text pt-3 pr-5">
                        <p style="text-align:justify"><strong>{{ $review->description }}</strong></p>
                    </div>
                    <div class="body-text pt-3">
                        @if(Auth()->check())
                            <a href="" class="like mr-2"><i class="far fa-thumbs-up"></i></a>{{ $review->getLikes() }}
                            <a href="" class="like mr-2 ml-4"><i class="far fa-thumbs-down"></i><a>{{ $review->getDislikes() }}
                        @else
                        <div class="container">
                                <div class="row">
                                    <div class="alert alert-danger auth-message" style=" height:30px;" role="alert">
                                        <p style="line-height:5px">You should be authenticated for completing this action<span class="ml-2 close-span" style="cursor:pointer"><strong>x</strong></span></p>
                                    </div>
                                </div>
                            </div>
                            <a href="javascript:void(0)" class="guest-like mr-2"><i class="far fa-thumbs-up"></i></a>{{ $review->getLikes() }}
                            <a href="javascript:void(0)" class="guest-like mr-2 ml-4"><i class="far fa-thumbs-down"></i><a>{{ $review->getDislikes() }}
                        @endif
                    </div>
                    <div class="author pt-2">
                        <h6 class="text-muted">{{ $review->user_name }},  {{ date('d-m-Y', strtotime( $review->created_at )) }}</h6>
                    </div>
                </div>
                @empty
                <h6>There are not reviews for this product</h6>
                @endforelse

JQuery код

$(document).ready(function(){
    $('.guest-like').click(function(){
     $(this).next('.auth-message').hide();
    });
    $(".close-span").click(function(){
      $(".auth-message").hide();
    });
});

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Попробуйте это,

$(document).ready(function(){
   $('.guest-like').click(function(){
     $(this).parent().find('.auth-message').hide();
   }); 
});
0 голосов
/ 12 июня 2018

Вы должны использовать parent вместо next

, вот рабочий пример

 $('.guest-like').click(function(){
     $(this).parent().find('.auth-message').hide();
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...