Как настроить таргетинг на 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"
$(document).on('click', '.parent', function(){
$(this).find('.child').show(500);
});
Вам нужно исправить HTML как
<div class="child">
'=' отсутствует в вашей разметке
Следующей строки достаточно:
$(document).on('click', '.parent', function(){
$(this).find('.child').show(500);
});