Javascript Jquery只切换单击的div下的p标记
快速简单的问题。 我现在有这个功能在工作Javascript Jquery只切换单击的div下的p标记,javascript,jquery,html,Javascript,Jquery,Html,快速简单的问题。 我现在有这个功能在工作 $("#menuopties").click(function(){ $("p").toggle(); }); 但是,这会切换每个p标记。 我只想切换div#菜单选项(已单击)下的p标记 谢谢。您当前的选择器“p”将获取p类型的所有元素,而不是获取当前对象中的p。用于获取当前元素的后代。您将使用$(this) 您可以在选择器的上下文中使用passcurrent对象 更改$('p').toggle()到$(this).children('p').togg
$("#menuopties").click(function(){
$("p").toggle();
});
但是,这会切换每个p标记。
我只想切换div#菜单选项(已单击)下的p标记
谢谢。您当前的选择器
“p”
将获取p
类型的所有元素,而不是获取当前对象中的p
。用于获取当前元素的后代。您将使用$(this)
您可以在选择器的上下文中使用passcurrent对象
更改$('p').toggle()
到$(this).children('p').toggle()代码>
$(this)
引用当前jQuery对象(在本例中是包装#menuopties
DOM元素),因此运行.children()
允许您通过所需的任何选择器筛选其子代元素(在本例中是p
)
编辑:正如buzzsawddog指出的,需要注意的是。children()
只返回DOM中下一级的子元素,因此如果您的p
标记不是#menuopties
的直接子元素,您应该使用.find()
。尝试这样做
$("#menuopties").click(function(){
$(this).find("p").toggle();
});
那么:
$("p", this).toggle();
尝试:
希望这能有所帮助。您需要在#菜单选项下或在其内部?根据问题的范围,find()可能比.children()更好。例如,如果他的div中有另一个div呢?还是一个跨度?很好。我用了最简单的答案,因为他没有提供任何标记,但你绝对是对的。谢谢你的回答,实际上div包含了其他div。然而,你的回答仍然有用。非常感谢。谢谢,所有的答案都有效,但是你的答案是最完整的,不仅解决了问题,还教会了我一些东西。谢谢,谢谢,但我更喜欢第一个答案,因为它解释了原因。谢谢,谢谢你,但我更喜欢有解释的其他解决方案@r-d-r-b-3无问题:)我的朋友。谢谢,我帮了忙,但我更喜欢有解释的其他解决方案!
$("#menuopties").click(function(){
$(this).find("p").toggle();
});
$("p", this).toggle();
$("#menuopties").click(function(){
$(this).find("p").toggle();
});