猿问

jquery匹配多个数据组(仅当它们都为真时)

我有元素的数据组

data-foo
data-bar

我想要一个 jquery 选择器来选择 foo 和 bar 都匹配的项目,例如

$("[data-foo='blah'],[data-bar='quax']")

将选择其中的元素data-foo = 'blah'data-bar='quax'

看来现在我得到的结果是data-foo=blahOR data-bar=quax。我需要这个是data-foo=blahANDdata-bar=quax


慕尼黑5688855
浏览 130回答 2
2回答

万千封印

把逗号去掉就行了 本质上,这是一个 OR 选择器。如果没有逗号,它会同时查找两者。console.log($("[data-foo='blah'],[data-bar='quax']").length) // 3 = not what you want&nbsp;console.log($("[data-foo='blah'][data-bar='quax']").length) // 1 = what you wantconsole.log($("[data-foo='blah'][data-bar='quax']").html()) // Just to make sure its the right one<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><div data-foo="blah" data-bar="quax">Both</div><div data-foo="blah">Foo</div><div data-bar="quax">Bar</div>

慕标琳琳

另一种可能的解决方案是使用过滤器:$("[data-foo='blah']").filter("[data-bar='quax']")
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答