快速,简单的问题。 我现在正在使用此功能;
$("#menuopties").click(function(){
$("p").toggle();
});
然而,这会切换每个p标签。 我只想切换div #menuopties下的p标签(已被点击)
感谢。
答案 0 :(得分:2)
您当前的选择器"p"
将获取p
类型的所有元素,而不是获取当前对象中的p
。使用find()获取当前元素的后代。您将使用$(this)
$("#menuopties").click(function(){
$(this).find("p").toggle();
});
您可以使用jQuery( selector [, context ] )
在选择器的上下文中使用传递当前对象$("#menuopties").click(function(){
$("p", this).toggle();
});
答案 1 :(得分:0)
将$('p').toggle();
更改为$(this).children('p').toggle();
$(this)
引用当前的jQuery对象(在这种情况下包装#menuopties
DOM元素),因此运行.children()
允许您通过所需的任何选择器过滤其后代元素(在这种情况p
)。
编辑:正如buzzsawddog指出的那样,重要的是要注意.children()
只返回DOM中下面一个级别的子元素,因此如果p
标记不是#menuopties
的直接子级你应该使用.find()
代替。
答案 2 :(得分:0)
试试这个
$("#menuopties").click(function(){
$(this).find("p").toggle();
});
答案 3 :(得分:0)
怎么样:
$("p", this).toggle();
答案 4 :(得分:0)
尝试:
$("#menuopties").click(function(){
$(this).find("p").toggle();
});
希望有所帮助。