0

我想编写一个优雅的解决方案,通过在不同上下文列表中搜索来选择相同的标签

//i have this not editable code
var c1$ = $('#context1'),
    c2$ = $('#context2'),
    c3$ = $('#context3');

//I want to improve the code and 'only from here on
var selector = 'a.select';
c1$.find(selector).css('color','red');
c3$.find(selector).css('color','red');

我正在寻找任意数量的上下文的解决方案

4

3 回答 3

8

您可以使用$.add()来构建您的上下文,然后将其用作选择器的上下文参数中的单个 jQuery 对象:

var $foo = $("#foo"),
    $bar = $("#bar");

var $context = $foo.add($bar);

$("a.select", $context).css("color", "red");
于 2012-05-01T21:35:13.347 回答
0

为什么不加载上下文列表,然后执行 foreach 以在每个上下文中找到“a.select”?

于 2012-05-01T23:15:56.657 回答
0

我绝望的不优雅的解决方案

var contexts = [$('#context1'),$('#context2'),$('#context3')];
//list of contexts in single variable(arbitrary number!)

var selector = 'a.select';
//same selector for all variable contexts

var cons$ = $([]);
//empty temporary selector

for(i in contexts)
    cons$ = cons$.add(contexts[i]);

var allmatches$ = cons$.find(selector);

//here processing allmatches$

allmatches$.css("color", "red"); 
//now apply css in one step
于 2012-05-02T23:43:12.953 回答