有没有办法多次使用关键字(this)

is there a way to use the keyword (this) more than once

提问人:dtd439 提问时间:4/4/2023 更新时间:4/4/2023 访问量:29

问:

jquery:

$(document).ready(function() {
   $(".title", this).click(function(){
      $(".content", this).slideToggle();
   });
});

代码看起来不错,但它不起作用。请帮忙。谢谢

jquery 这个

评论

0赞 Martin Lisowski 4/4/2023
请提供您的相关 HTML(最好是代码截图),并描述您想要发生什么以及会发生什么。
0赞 dtd439 4/4/2023
我认为在给定的jQuery代码中很明显,有多个和类。你点击某个标题,某个内容触发了效果,但是当点击任何一个标题时,什么都不会发生.title.content.slideToggle()
0赞 dtd439 4/4/2023
HTML代码:<div class="container"> <div class="title">im a title</div> <div class="content">this is a text</div> </div> <div class="container"> <div class="title">im another title</div> <div class="content">and another text</div> </div>
1赞 76484 4/4/2023
如果 是 click 的子级,您的 jQuery 代码将起作用,但它是同级的,因此您需要类似 ..content.title$(this).next().slideToggle();
0赞 freedomn-m 4/4/2023
编辑问题以添加格式化的 HTML,不要添加为评论。它在这里是相关的,因为你的代码可以使用,但你有.请注意,在 doc.ready 中是不需要的,您刚刚完成了 .document >> .title >> .contentdocument >> .title + .containerthis$(".title")

答:

0赞 Martin Lisowski 4/4/2023 #1

提供 HTML 显示了问题: 您的 DIV 不是 so 返回和 emtpy jQuery 对象的子对象。如果您不想重新排列 HTML,我建议使用该函数:https://api.jquery.com/siblings/#siblings-selectorcontenttitle$(".content", this)siblings()

$(document).ready(function() {
  $(".title", this).click(function() {
    console.log(this.tagName+" "+this.innerHTML);
    $(this).siblings(".content").slideToggle();
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
  <div class="title">im a title</div>
  <div class="content">this is a text</div>
</div>
<div class="container">
  <div class="title">im another title</div>
  <div class="content">and another text</div>
</div>