1

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上面这样的方法?

4

2 回答 2

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'在本例中)。

于 2012-05-21T09:01:06.950 回答
0

有一个名为 context 的方法,但它会返回上下文。在 jQuery 中,如果要设置上下文,则可以将其作为第二个参数可选地传递给 jQuery 选择器。这是一个示例jQuery( selector [ , context ] ),您可以像这样使用它$("input:radio", document.forms[0]);

要了解有关传递上下文的更多信息http://api.jquery.com/context/

有关检索上下文的更多信息,请参阅http://api.jquery.com/context/

于 2012-05-21T09:13:16.523 回答