扫码关注官方订阅号
看到一个jquery插件这样写:var p = $(this), ul = $("ul", p), tLi = $("li", ul)...... 请问$("ul", p)的意义是什么?
闭关修行中......
不应该说“p.find($("ul"))” ,应该是 p.find("ul") 吧……
$(...)括号里第二个参数如果是jQuery对象或者Dom对象的话,就是以该对象为上下文进行查询。这相当于一种简写法,可以缩短源码,并且在packer的时候可以减少一个词汇。
当然,如果没有这个参数的话,默认的查询上下文就是整个Dom文档。
//原语句 var p = $(this), ul = $("ul", p), tLi = $("li", ul); //等同于 var p = $(this), ul = p.find('ul'), tLi = ul.find('li'); //省略第二个上下文对象参数的情况 $('ul') == $('ul',document) == $(document).find('ul');
意思就是p.find($("ul"))
这里就是要限定搜索范围, 提高运行性能. 在整个DOM tree寻找和在的单个node里面寻找,速度自然是不可同日而语的.
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
不应该说“p.find($("ul"))” ,应该是 p.find("ul") 吧……
$(...)括号里第二个参数如果是jQuery对象或者Dom对象的话,就是以该对象为上下文进行查询。这相当于一种简写法,可以缩短源码,并且在packer的时候可以减少一个词汇。
当然,如果没有这个参数的话,默认的查询上下文就是整个Dom文档。
//原语句 var p = $(this), ul = $("ul", p), tLi = $("li", ul); //等同于 var p = $(this), ul = p.find('ul'), tLi = ul.find('li'); //省略第二个上下文对象参数的情况 $('ul') == $('ul',document) == $(document).find('ul');意思就是p.find($("ul"))
这里就是要限定搜索范围, 提高运行性能. 在整个DOM tree寻找和在的单个node里面寻找,速度自然是不可同日而语的.