0

我有以下选择器:

$(".product_tile:nth-child(6n) .tile_back select[name='crust']")

它每 6 个 product_tile 查找一次,然后获取具有 tile_back 类的子 div,然后在其中包含名称为外壳的选择框。我现在需要修改它,以便它找到两个选择框之一 - 外壳或底座。

我知道在基本选择器中,我可以使用逗号:

$("select[name='crust'], select[name='base']")

但是如果我在原始选择器中使用逗号分隔的选择器,它会知道逗号仅适用于它的最后一部分,还是会将其视为“查找每 6 个 product_tile 的 tile_back 的外壳选择框或查找任何名为根据”?如果是后者,我该如何编写选择器以使其将其视为“查找每 6 个 product_tile 的 tile_back 的外壳选择框或查找每 6 个 product_tile 的 tile_back 的基本选择框”?

4

4 回答 4

3

您可以指定要搜索的上下文..使用这样的上下文选择器

$("select[name='crust'], select[name='base']",'.product_tile:nth-child(6n) .tile_back')

最初与

$('.product_tile:nth-child(6n) .tile_back').find("select[name='crust'], select[name='base']");

它将在 .product_tile:nth-child(6n) 下找到所有带有 name=crust 或 name=base 的选择

于 2012-12-13T18:49:00.607 回答
2

您将无法将逻辑放入选择器中。您要么必须同时拥有带逗号的完整选择器:

$(".product_tile:nth-child(6n) .tile_back select[name='crust'], product_tile:nth-child(6n) .tile_back select[name='base']")

或使用一个选择器匹配直到.tile_back并使用第二个选择器进行过滤:

$(".product_tile:nth-child(6n) .tile_back").find("select[name='crust'], select[name='base']")
于 2012-12-13T18:48:46.250 回答
1

不,只需在逗号后添加开头部分:

$(".product_tile:nth-child(6n) .tile_back select[name='crust'], .product_tile:nth-child(6n) .tile_back select[name='base']")
于 2012-12-13T18:48:27.813 回答
1

.add ()方法将选定的元素添加到结果集中:

$(".product_tile:nth-child(6n) .tile_back").add("select[name='crust']").add("select[name='base']");
于 2012-12-13T18:48:53.727 回答