我有一个元素和一个jQuery集合。我想检查元素是否在jQuery集合内。我需要这样的条件。检查一个元素是否在jQuery集合中
if ($someUL.find("> li > a").contains(myElement)) {
...
}
这里,contains
方法不存在,我用它来证明我的目标。我知道几种类似的方法,如has
,is
,$.contains
,但它们都有不同的含义。
我有一个元素和一个jQuery集合。我想检查元素是否在jQuery集合内。我需要这样的条件。检查一个元素是否在jQuery集合中
if ($someUL.find("> li > a").contains(myElement)) {
...
}
这里,contains
方法不存在,我用它来证明我的目标。我知道几种类似的方法,如has
,is
,$.contains
,但它们都有不同的含义。
您可以在这里使用.index()
方法。如果一套没有找到元素,.index()
返回-1通过阅读jQuery API:
if($someUL.find("> li > a").index(myElement) > -1){
//myelement exists in set $someUL.find("> li > a")
}
谢谢你为了快速回答,对于这个问题比使用'过滤器'IMO更好。而且,就性能而言,这应该稍微高效。 –
@ZoltánTamási:很高兴帮助:),不要忘记接受答案。 –
你可以有你的答案。
我认为你的目标是检查elememt是否匹配选择器。答案是使用.is()
。
根据所述API:
.has()
在无极被使用并且是实验技术.contain()
或$.contain()
判定后代.is()
可用于决定选择,元件或选择即使功能。所以,你应该使用.is()
这里是API
谢谢你的总结,我不知道'是'可以接受另一个jQuery对象来检查遏制。然而,对于这个简单的任务,当我有一个精确的DOM元素时,使用'index'是更好的方法IMO。但你绝对是上帝,我的赞成。 –
另外,请原谅我,我没有免费的一周阅读jQuery API :) –
在你的问题之前,我从来没有使用'.has()'。在你的问题之后,我了解了'.has()'函数,可能有很多你的问题的答案,选择最好的。我从别人的回答中学到很多东西:) – TomIsion
'如果($ someUL.find( “> li>系统”)。过滤器(myElement)。长度)'???现在我不确定你确切的预期行为是什么?那么只需使用:'$ someUL.find(myElement).length'?因为根据你的用例和相关的HTML标记,这可能就足够了。现在确定你最好提供一个有问题的MCVE –
@ A.Wolff谢谢你,是的,你的建议也可以,但是我更喜欢使用'index'。 –
它不适合你:'myElement.is($ someUL.find(“> li> a”))'? –