jQuery.proxy()
有一些我正在寻找的功能,但理想情况下我希望能够做到这样的事情:
$('#some-id').context(function(){
$('.some-class').show();
$('li').css('background','red');
});
其效果与:
相同$('#some-id .some-class').show();
$('#some-id li').css('background','red');
jQuery是否有类似我context
的方法?
答案 0 :(得分:0)
您最接近的是在jQuery
电话中定义上下文:
var $el = $('#some-id');
$('.some-class', $el).show();
$('li', $el).css('background','red');
你也可以使用链接:
$('#some-id')
.find('.some-class').show().end()
.find('li').css('background','red');
在这两种情况下,改进之处在于您只为初始选择器查询一次DOM(在这种情况下为'#some-id'
)。
答案 1 :(得分:0)
有一种叫做上下文的方法,但它会返回上下文。在jQuery中,如果要设置上下文,则可以将其作为第二个参数传递给jQuery选择器。以下是jQuery( selector [ , context ] )
示例,您可以像$("input:radio", document.forms[0]);
了解有关传递上下文http://api.jquery.com/context/
的更多信息有关检索上下文的详细信息,请参阅http://api.jquery.com/context/