You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否多次使用this关键字?JQuery点击切换代码无法运行求助

问题解答
  1. this关键字可以多次使用,但要注意:每个this的上下文(即它指向的对象)由当前执行的函数决定,不同函数里的this指向完全可能不同。

  2. 你的代码失效的核心原因:

    • 在$(document).ready()的回调函数里,this指向document对象,$(".title", this)是在整个文档中查找.title元素,这部分逻辑没问题;
    • 但在.click()的回调函数里,this指向被点击的.title元素,此时$(".content", this)是在该.title元素的子元素中查找.content,如果你的DOM结构里.content并不是.title的子节点(比如是同级节点),自然找不到元素,也就无法执行slideToggle()。
  3. 修复方案(针对常见DOM结构调整):
    如果你的DOM结构类似这样:

    <div class="item">
      <div class="title">标题1</div>
      <div class="content">内容1</div>
    </div>
    <div class="item">
      <div class="title">标题2</div>
      <div class="content">内容2</div>
    </div>
    

    可以将代码修改为:

    $(document).ready(function() {
      $(".title").click(function(){
        // 找到当前点击.title的同级.content元素
        $(this).siblings(".content").slideToggle();
        // 若.content是紧跟在.title后的元素,用$(this).next(".content")更精准
      });
    });
    
  4. 额外优化:$(document).ready()回调里的this可以省略,因为jQuery默认会在整个文档范围内查找元素,$(".title")和$(".title", document)效果一致。

内容的提问来源于stack exchange,提问作者dtd439

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 23:23:27