Jquery只需点击div下的p标签即可切换

时间:2013-10-18 14:25:09

标签: javascript jquery html

快速,简单的问题。 我现在正在使用此功能;

$("#menuopties").click(function(){
$("p").toggle();
});

然而,这会切换每个p标签。 我只想切换div #menuopties下的p标签(已被点击)

感谢。

5 个答案:

答案 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();
});

希望有所帮助。