Быстрый, простой вопрос. У меня есть эта функция, работающая в данный момент;
$("#menuopties").click(function(){
$("p").toggle();
});
Однако это переключает каждый p-тэг. Я просто хочу переключить теги p, которые находятся под div #menuopties (который был нажат)
Благодарю.
Ваш текущий селектор "p"
получит все элементы типа p
вместо получения p
в текущем объекте. Используйте find(), чтобы получить потомка текущего элемента. вы получите источник объекта события, используя $(this)
$("#menuopties").click(function(){
$(this).find("p").toggle();
});
Вы можете использовать текущий объект передачи в контексте селектора, используя jQuery (selector [, context])
$("#menuopties").click(function(){
$("p", this).toggle();
});
Попробуйте это
$("#menuopties").click(function(){
$(this).find("p").toggle();
});
Как насчет:
$("p", this).toggle();
Измените $('p').toggle();
to $(this).children('p').toggle();
$(this)
относится к текущему объекту jQuery (в этом случае обертывание #menuopties
DOM #menuopties
), поэтому запуск .children()
позволяет вам фильтровать свои .children()
элементы любым селектором, который вы хотите (в данном случае p
).
edit: как указано в buzzsawddog, важно отметить .children()
возвращает только дочерние элементы на один уровень ниже в DOM, поэтому, если ваши p
теги не являются непосредственными #menuopties
элементами #menuopties
вы должны использовать .find()
.
пытаться:
$("#menuopties").click(function(){
$(this).find("p").toggle();
});
надеюсь, что это помогло.