Как настроить таргетинг на div по имени класса внутри другого класса

У меня есть некоторые divs, как это.

<div class"parent">
    <div class"child">
     Some Stuff Here
    </div>
</div>


<div class"parent">
    <div class"child">
     Some other kinda Stuff Here
    </div>
</div>

Я хочу щелкнуть родительский класс и показать дочерний класс только внутри этого родителя, не показывая другие дочерние классы в других родительских классах.

$(document).on('click', '.parent', function(){
    $(this).find($('.child').show(500));
});

4 ответа

Решение

Передать строку селектора find() не объект - вы передаете объект jQuery. У вас также есть недопустимый HTML, потому что class"parent" должно быть class="parent",

демонстрация

$(document).on('click', '.parent', function(){
    $(this).find('.child').show(500);
});

Прежде всего, вам нужно исправить разметку, как это должно быть = между атрибутом class и его ценность. Таким образом, разметка должна быть такой:

<div class="parent">
    <div class="child" >
     Some Stuff Here
    </div>
</div>

Попробуй это:

$(document).on('click', '.parent', function(){
    $(this).children('.child').show(500);
});

демонстрация

Не использовать селектор $('.child') в find, так как он вернет всех детей в DOM и найдет, $(this).find($('.child').show(500)); должно быть $(this).find('.child').show(500);

Также исправьте HTML, class"parent" должно быть class="parent"То же самое относится и к class"child"

Live Demo

$(document).on('click', '.parent', function(){
    $(this).find('.child').show(500);
});

Вам нужно исправить HTML как

<div class="child">

'=' отсутствует в вашей разметке

Следующей строки достаточно:

$(document).on('click', '.parent', function(){
   $(this).find('.child').show(500);
});
Другие вопросы по тегам