jQuery 属性
jQuery 的"属性"指 jQuery 对象与全局对象自带的信息和开关:当前选中了几个元素、用的哪个版本、查找起点是什么,以及全局动画是否关闭等。调试代码和编写通用组件时常会用到。
版本号属性:jquery
通过 $.fn.jquery 可读取当前 jQuery 的版本号,用于判断 API 兼容性:
console.log($.fn.jquery); // 输出:3.7.1(随引入版本变化)
console.log(jQuery.fn.jquery); // 输出:3.7.1,与上面完全等价
// 用途:页面可能同时存在多版本 jQuery,可据此判断当前生效者
集合长度属性:length
length 返回 jQuery 集合中元素的个数,等价于旧方法 size()(已废弃,请用 length):
var n = $("li").length; // li 元素的个数
console.log(n); // 输出:3
if ($(".item").length > 0) {
console.log("找到了 .item 元素"); // 常用写法:判断元素是否存在
}
selector 与 context 属性
对象属性 selector 记录当初使用的选择器,context 记录查找的起点文档:
var obj = $("div.box");
console.log(obj.selector); // 输出:div.box
console.log(obj.context); // 输出:Document(默认从 document 开始查找)
var inner = $("p", "#main"); // 指定在 #main 内部查找 p
console.log(inner.context); // 输出:#main 对应的元素
全局动画开关:fx.off 与 fx.interval
$.fx.off 设为 true 可关闭所有动画(立即跳到最终状态),适合低配设备、无障碍访问或测试;$.fx.interval 控制动画帧间隔毫秒数:
$.fx.off = true; // 效果:fadeIn/animate 等不再播放,直接完成
$.fx.off = false; // 恢复动画
$.fx.interval = 100; // 帧间隔改为 100ms(默认约 13ms),动画更"卡顿"
已移除的特性检测:support
旧版用 $.support 做浏览器特性检测,jQuery 1.9 起已被移除。如今做能力检测建议使用 Modernizr 或自行判断,不要再依赖 jQuery。
小结:jquery 看版本、length 数元素、selector/context 记录来源,fx.off 一键关动画——这些属性平时不起眼,排查问题和编写通用库时却能派上大用场。