选择器 context 是由 .find() 方法实现的;因此,$('li.item-ii').find('li') 等价于 $('li', 'li.item-ii')。
上面这句是什么意思
一般情况对jquery的选择器的用法,都是做为第一个参数的用法。其实jquery()函数的这种用法还可以传递第二个参数。传递这个参数的目的是将前面选择器限定在context这个环境中。在默认情况下,即不传第二个参数,选择器从文档根部对 DOM 进行搜索($()将在当前的HTML document中查找DOM元素);如果指定了第二个参数,如一个DOM元素集或jquery对象,那就会在这个context中查找。
对于上面这个问题我们可以这么想,我们的目的是在'li.item-li'中找到我们要的'li'
我们来看看$('li.item-ii').find('li') 系统先去找大的范围'li.item-li',然后在这个范围里找'li'
再来看$('li', 'li.item-ii')系统会这么想,我要找到'li',我要去'li.item-li'中去找,
两种说法是一回事吧!
最佳吧!
$(selector,[.context])里的context选择器是由.find()实现的,故$('li.item-li').find('li')等价于$('li','li.item-li')