javascript - var a = ($(".two"),$("#one")); 这样获取到two 优点在哪?
高洛峰
高洛峰 2017-04-10 15:59:01
[JavaScript讨论组]

var a = ($(".two"),$("#one")); 这样获取到two 优点在哪?

一般不都是应该这样写吗 $("#one .tao")

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
ringa_lee

自版本1.3之后,jQuery采用了Sizzle库,与之前的版本在选择器引擎上的表现形式有很大的不同。它用“从左至右”的模型代替了“从右至左”的模型。确保最右的选择器具体些,而左边的选择器选择范围较宽泛些。
$("#one .tao") ,违背了上面的原则。

var a = ($(".two"),$("#one")); 楼主写错了吧,应该是: var a = ($(".two",$("#one")); 吧。
这段代码的逻辑是:

  1. 通过$("#one")找对对应的DOM元素(封装成jquery对象,假如命名为A)

  2. $(".two",$("#one")): 以A作为上下文(在A对应的DOM元素内查找),构造新的jquery对象,对象里DOM元素的class值包含 .two
    这种方式应该是最优的吧,就相当于:
    var ele = document.getElementById('one');
    var eles = document.getElementsByClassName('two'); //注意代码的兼容性
    用jquery写就是:
    $('#one').find('.two');

鉴于有些同学存在怀疑,在此贴出阮老师的一篇相关文章:
http://www.ruanyifeng.com/blog/2011/08/jquery_best_practices.html

巴扎黑

$("#one").find(".two"),缩小范围查找节点,查$("#one")内的class two

PHP中文网

确认中间是逗号?
那么 a就是$("#one")了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号