开发者社区> 问答> 正文

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

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

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

展开
收起
小旋风柴进 2016-05-27 09:17:45 2376 0
1 条回答
写回答
取消 提交回答
  • 自版本1.3之后,jQuery采用了Sizzle库,与之前的版本在选择器引擎上的表现形式有很大的不同。它用“从左至右”的模型代替了“从右至左”的模型。确保最右的选择器具体些,而左边的选择器选择范围较宽泛些。
    $("#one .tao") ,违背了上面的原则。

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

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

    2019-07-17 19:17:01
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载