快速,简单的问题。我现在有这个功能;
$("#menuopties").click(function(){
$("p").toggle();
});
但是,这会切换每个 p 标签。我只想切换 div #menuopties 下的 p 标签(已单击)
谢谢。
快速,简单的问题。我现在有这个功能;
$("#menuopties").click(function(){
$("p").toggle();
});
但是,这会切换每个 p 标签。我只想切换 div #menuopties 下的 p 标签(已单击)
谢谢。
您当前的选择器"p"
将获取类型的所有元素,p
而不是获取p
当前对象中的元素。使用find()获取当前元素的后代。您将使用以下方法获取事件对象的来源$(this)
$("#menuopties").click(function(){
$(this).find("p").toggle();
});
您可以使用jQuery( selector [, context ] )在选择器的上下文中使用传递当前对象
$("#menuopties").click(function(){
$("p", this).toggle();
});
更改$('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();
尝试:
$("#menuopties").click(function(){
$(this).find("p").toggle();
});
希望有帮助。