2016-09-13 2 views
-4

Я хочу добавить класс через jQuery в родительский элемент div с общим классом. Я могу использовать .closest, чтобы добавить класс, добавленный в правильный div.class, но он также добавляет класс к остальным разделам с одним и тем же целевым классом.Добавить класс только к ближайшему родительскому классу

Поэтому я хочу, чтобы класс добавлялся к дочерней кнопке.

$('.trigger').on('click', function() { 
 
    $('.myclass').addClass('current'); 
 
});
.current { 
 
    margin: 30px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="myclass"> 
 
    <div style="background-color:red;"> 
 
    <div style="padding:10px"> 
 
     <button class="trigger"> 
 
     Button 
 
     </button> 
 
    </div> 
 
    </div> 
 
</div> 
 

 
<div class="myclass"> 
 
    <div style="background-color:blue;"> 
 
    <div style="padding:10px"> 
 
     <button class="trigger"> 
 
     Button 
 
     </button> 
 
    </div> 
 
    </div> 
 
</div>

+0

https://api.jquery.com/parents/ – CBroe

ответ

2

Вы должны использовать .closest() для выбора родительского элемента имеет .myclass.

$(".trigger").on("click", function() { 
 
    $(this).closest(".myclass").addClass("current"); 
 
});
.current { margin: 30px }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="myclass"> 
 
    <div style="background-color:red;"> 
 
    <div style="padding:10px"> 
 
     <button class="trigger">Button</button> 
 
    </div> 
 
    </div> 
 
</div> 
 
<div class="myclass"> 
 
    <div style="background-color:blue;"> 
 
    <div style="padding:10px"> 
 
     <button class="trigger">Button</button> 
 
    </div> 
 
    </div> 
 
</div>

+0

Нажмите кнопку или на другой кнопке, мы можем удалить класс, который мы добавили? –

+0

@TomRudge Да, вы можете использовать '.removeClass (" className ")' для удаления класса. – Mohammad

2

Вы должны использовать $ (это) .closest (». MyClass') метод ближайшего родительского класса.

$('.trigger').on('click', function(){ 
    $(this).closest('.myclass').addClass('current'); 
}); 
+0

Класса должен быть добавлен к тому же DIV, где «MyClass» находится –

+0

я модифицированный ... –

+0

Итак, что это различие между моим кодом и кодом? – Mohammad

Смежные вопросы