$("ul", div)起什么作用?

新手上路,请多包涵

看到一个jquery插件这样写:var div = $(this), ul = $("ul", div), tLi = $("li", ul)......
请问$("ul", div)的意义是什么?

阅读 7.6k
3 个回答

不应该说“div.find($("ul"))” ,应该是 div.find("ul") 吧……

$(...)括号里第二个参数如果是jQuery对象或者Dom对象的话,就是以该对象为上下文进行查询。这相当于一种简写法,可以缩短源码,并且在packer的时候可以减少一个词汇。

当然,如果没有这个参数的话,默认的查询上下文就是整个Dom文档。

//原语句
var div = $(this), ul = $("ul", div), tLi = $("li", ul);
//等同于
var div = $(this), ul = div.find('ul'), tLi = ul.find('li');

//省略第二个上下文对象参数的情况
$('ul') == $('ul',document)  == $(document).find('ul');

意思就是div.find($("ul"))

这里就是要限定搜索范围, 提高运行性能. 在整个DOM tree寻找和在的单个node里面寻找,速度自然是不可同日而语的.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题