首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Jquery $(this)子选择器

Jquery $(this)子选择器
EN

Stack Overflow用户
提问于 2009-05-08 20:03:23
回答 4查看 232.7K关注 0票数 72

我使用的是:

代码语言:javascript
复制
jQuery('.class1 a').click( function() {
  if ($(".class2").is(":hidden")) {
    $(".class2").slideDown("slow");
  } else {
    $(".class2").slideUp();
  }
});

在页面结构上:

代码语言:javascript
复制
<div class="class1">
  <a href="...">text</a>
  <div class="class2">text</div>
</div>

只有当你没有多个class1/n2集时,它才有效:

代码语言:javascript
复制
<div class="class1">
  <a href="...">text</a>
  <div class="class2">text</div>
</div>
<div class="class1">
  <a href="...">text</a>
  <div class="class2">text</div>
</div>
<div class="class1">
  <a href="...">text</a>
  <div class="class2">text</div>
</div>

如何更改初始的jquery代码,使其仅影响所单击的class1下的class2?我尝试了How to get the children of the $(this) selector?的推荐,但没有成功。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-05-08 20:04:52

对于HTML语言,最好的方法可能是使用next函数,如下所示:

代码语言:javascript
复制
var div = $(this).next('.class2');

由于单击处理程序发生在<a>上,因此您还可以向上遍历到父DIV,然后向下搜索第二个DIV。您可以使用parentchildren的组合来完成此操作。如果您放置的HTML与此不完全相同,并且第二个DIV可能位于相对于链接的另一个位置,则此方法将是最好的:

代码语言:javascript
复制
var div = $(this).parent().children('.class2');

如果您希望“搜索”不局限于直接子项,那么在上面的示例中使用find而不是children

此外,如果可能的话,最好在类选择器前面加上标记名。也就是说,如果只有<div>标签有这些类,那么选择器就是div.class1div.class2

票数 93
EN

Stack Overflow用户

发布于 2009-05-08 20:10:02

在click事件中,"this“是被单击的标签

代码语言:javascript
复制
jQuery('.class1 a').click( function() {
   var divToSlide = $(this).parent().find(".class2");
   if (divToSlide.is(":hidden")) {
      divToSlide.slideDown("slow");
   } else {
      divToSlide.slideUp();
   }
});

有多种方法可以到达div,但也可以使用.siblings、.next等

票数 9
EN

Stack Overflow用户

发布于 2009-05-08 20:17:29

有了.slideToggle(),这就简单多了

代码语言:javascript
复制
jQuery('.class1 a').click( function() {
  $(this).next('.class2').slideToggle();
});

编辑:从.siblings改为.next

http://www.mredesign.com/demos/jquery-effects-1/

您还可以添加cookie来记住您所在的位置...

http://c.hadcoleman.com/2008/09/jquery-slide-toggle-with-cookie/

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/841553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档