0

我需要选择 .foo,但是,有两个带有 .foo 的标签,我需要选择仅带有 .foo 的标签,而不是带有 .foo.bar 的标签,我该如何完成?

<a class="foo bar">text</a>
<a class="foo">text</a> 

我用来查找 .foo 的代码是

$(this).parents('.post').find('.foo').text('text');
4

6 回答 6

1

使用 jQuery .not(); http://api.jquery.com/not/

$(this).parents('.post').find('.foo').not('.bar').text('text');
于 2013-08-07T06:00:37.470 回答
1

一些变化

  1. 使用.closest()而不是.parents()来获取最近的祖先
  2. 使用:not()选择器过滤掉.bar元素

尝试

$(this).closest('.post').find('.foo:not(.bar)').text('text');
于 2013-08-07T05:59:00.487 回答
0

您需要使用 .not() 方法:

$(this).parents('.post').find('.foo').not('.bar').text('text');

你可以在这里阅读更多:http: //api.jquery.com/not-selector/

于 2013-08-07T06:25:00.900 回答
0

尝试

$(this).parents('.post').find('.foo').not('.bar').text('text');
于 2013-08-07T05:58:52.620 回答
0

你可以只选择一个类属性:

.find('[class=foo]')
于 2013-08-07T05:59:38.060 回答
0

你想要:not(selector)

$(this).parents('.post').find('.foo:not(.bar)').text('text');

http://api.jquery.com/not-selector/

于 2013-08-07T06:06:45.373 回答