在jquery命令链中再次在子上下文中调用jquery

时间:2012-03-29 13:49:25

标签: javascript jquery jquery-selectors

是否可以做这样的事情?

jQuery(selector).jQuery(subselector).command(....)

我的代码是这样的:

$(' .species')
.filter(function () { return !$(this).data('hidden_code_ready'); }
.wrapInner('<span class="species_info" />')
.append('<a href="" class="show_species"></a>')
.data('hidden_code_ready', true)

现在,对于每个匹配的元素(.species),我想在.show_species中安装click handler。我知道我可以做类似的事情:

$('.show_species',
    $(' .species')
    .filter(function () { return !$(this).data('hidden_code_ready'); }
    .wrapInner('<span class="species_info" />')
    .append('<a href="" class="show_species"></a>')
    .data('hidden_code_ready', true)
).click(...);

但这真的很尴尬。是否有可能做类似的事情:

$(' .species')
.filter(function () { return !$(this).data('hidden_code_ready'); }
.wrapInner('<span class="species_info" />')
.append('<a href="" class="show_species"></a>')
.data('hidden_code_ready', true)
.jQuery('.show_species').click(....);

???

最好也在jQuery 1.3.2中工作。谢谢!

1 个答案:

答案 0 :(得分:1)

关闭!该函数称为.find(),而不是jQuery

$('.species')
    .filter(function () { return !$(this).data('hidden_code_ready'); }
    .wrapInner('<span class="species_info" />')
    .append('<a href="" class="show_species"></a>')
    .data('hidden_code_ready', true)
    .find('.show_species').click(....);