你已经听说过上下文参数,但是还没有碰到使用的场合。再想$()中,传递选择器的时候,可以传递第二个参数,指定上下文,jQ将在这个上下文中搜索匹配选择器表达式的元素,上下文参数可能是利用最不充分的JQ功能,其用法非常简单。传递一个选择器表达式,一个jQ对象,一个DOM集合,或者一个DOM节点给上下文参数,JQ将尽在这个上下文中搜索元素。下面是个例子

$("form").bind("submit",function(){
var inputs = $("input",this); //this代表form。 仅仅选择form之下的Input
})
//前面已经提到可以传递常规的选择器作为上下文比如
$('p','#content') 实质等于$("#content p")

在JQ中默认的上下文是document也就是DOM层次结构中最顶部的元素,只有在上下文不同于这个默认值时才需要指定,使用上下文可以按照如下方式表达
$(context).find(selector)
实际上这就是JQ后台所做的事情。考虑到这点,如果你已经有了对上下文的引用,那么你传递它,而不是选择器,没有理由让JQ再次经历选择过程。


幻灭丶
304 声望6 粉丝