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

jQuery中$($(this).attr('href'))语法的含义及合理性咨询

关于jQuery中$($(this).attr('href'))写法的解惑

嘿,别担心,这个写法绝对不是笔误,而是jQuery里一种很实用的技巧,我来给你拆解清楚:

先拆解代码逻辑

咱们一步一步拆解:

  1. $(this).attr('href'):这部分你已经理解了,它会获取当前触发事件的元素(比如点击的<a>标签)的href属性值,得到的是一个字符串——比如如果你的链接是<a href="#main-content">跳转</a>,那这部分返回的就是"#main-content"。
  2. $($(this).attr('href')):外层的$()是jQuery的选择器函数,它接受选择器字符串作为参数。把第一步得到的"#main-content"传进去,就等价于$("#main-content")——也就是选中页面中id="main-content"的目标元素。

简单说,这行代码的核心作用就是:通过当前元素的href属性值,定位到页面中对应的目标元素。

举个实际例子帮你理解

假设你的HTML结构是这样的:

<a href="#target-box" class="jump-link">点我高亮目标</a>
<div id="target-box" style="padding:20px; border:1px solid #ccc;">我是目标元素</div>

对应的jQuery脚本:

$('.jump-link').click(function(e) {
  e.preventDefault(); // 阻止默认的锚点跳转行为
  // 用你疑惑的写法选中目标元素
  var targetElement = $($(this).attr('href'));
  // 给目标元素添加高亮样式
  targetElement.css('background-color', '#ffeb3b');
});

点击链接后,#target-box就会变成黄色,这直接证明这个写法是有效的,完全是有意为之的。

怎么搜索这类语法?

不用纠结“嵌套$符号”这个表述,换个思路搜索会更高效:

  • 直接搜 "jQuery use href attribute as selector"(用href属性作为选择器)
  • 或者抓住核心逻辑:$()函数可以接受字符串选择器,问题本质是“如何把元素的属性值作为jQuery选择器使用”

这种写法在处理页面内锚点交互(比如平滑滚动、锚点导航高亮)时特别常见,以后遇到类似场景你就能快速反应过来啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:45:39