$('#ElementId')
是 jQuery 中最常用的 ID 选择器,用于通过元素的 ID 属性快速获取 DOM 元素。它相当于原生 JavaScript 的 document.getElementById('ElementId')
,但返回的是一个 jQuery 对象,可以链式调用 jQuery 方法。
大多数情况下可以,但有以下几种情况需要注意:
$
会导致错误// 错误示例:脚本在元素前加载
<script>
$('#myElement').hide(); // 无效,因为元素还不存在
</script>
<div id="myElement">内容</div>
// 正确做法:使用DOM ready事件
$(document).ready(function() {
$('#myElement').hide();
});
// 或简写为
$(function() {
$('#myElement').hide();
});
对于通过 AJAX 或 JavaScript 动态添加的元素,需要在元素添加后再选择:
// 动态添加元素后操作
$('#container').append('<div id="newElement">新内容</div>');
$('#newElement').css('color', 'red');
如果 ID 包含特殊字符(如 .
或 :
),需要使用转义:
// ID为"my.element"的元素
$('#my\\.element').hide();
如果其他库也使用了 $
符号,可以使用 jQuery
代替:
jQuery('#myElement').hide();
或者使用无冲突模式:
var $j = jQuery.noConflict();
$j('#myElement').hide();
虽然 $('#ElementId')
非常高效(jQuery 内部会直接调用 getElementById
),但在循环中频繁调用仍会影响性能。最佳实践是缓存选择器结果:
// 不好
for(let i=0; i<100; i++) {
$('#myElement').doSomething();
}
// 好
const $element = $('#myElement');
for(let i=0; i<100; i++) {
$element.doSomething();
}
在现代前端开发中,可以考虑使用原生方法:
// 原生JavaScript替代方案
document.getElementById('myElement');
document.querySelector('#myElement');
$('#ElementId')
在大多数情况下都可以安全使用,但需要注意 DOM 加载时机、动态内容处理和特殊字符等情况。合理使用可以提高开发效率,但在性能敏感场景应考虑缓存选择器或使用原生方法。