jQuery中$($(this).attr('href'))语法的含义及合理性咨询
关于jQuery中
$($(this).attr('href'))写法的解惑 嘿,别担心,这个写法绝对不是笔误,而是jQuery里一种很实用的技巧,我来给你拆解清楚:
先拆解代码逻辑
咱们一步一步拆解:
$(this).attr('href'):这部分你已经理解了,它会获取当前触发事件的元素(比如点击的<a>标签)的href属性值,得到的是一个字符串——比如如果你的链接是<a href="#main-content">跳转</a>,那这部分返回的就是"#main-content"。$($(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
相关产品推荐
相关产品推荐

