jQuery中的链式选择器

时间:2012-02-09 00:54:37

标签: jquery css-selectors closest

我有一个Rails表单,其中包含许多表。其中一个表有一个感兴趣的下拉元素,可以通过它的id访问:

$('#contract_contract_phases_attributes_0_ngl_price_term')

我根据其中选择的值显示/隐藏另一个元素,这没问题。麻烦的是:元素的表头行有'th'元素,我需要用它来显示/隐藏它。我可以这样到达父表元素:

$('#contract_contract_phases_attributes_0_ngl_price_term').closest('table')

但是,我试图通过给它一个'price_term'类来定位需要隐藏的头元素(th)。所以我试图进一步缩小与这个元素最接近的元素,如下所示:

$('#contract_contract_phases_attributes_0_ngl_price_term').closest('table th.price_term')

然而,这不起作用。有没有办法可以定位这个标题元素?

2 个答案:

答案 0 :(得分:2)

.closest()只关注父母,祖父母,曾祖父母等等 - 只会在DOM中向上发展。

.find()只关注孩子,孙子等等 - 它通过DOM下行。

因此,您希望向上(.closest())到表格,然后向下(.find())到th.price_term:

$('#contract_contract_phases_attributes_0_ngl_price_term')
    .closest('table')
    .find('th.price_term')

答案 1 :(得分:1)

这有用吗?

$('#contract_contract_phases_attributes_0_ngl_price_term').closest('table').find('th.price_term')