如何判断元素是否与选择器匹配?

14 javascript jquery dom

假设我有一个DOM元素 - 如何判断它是否与jQuery选择器相匹配,例如p.myclass?使用选择器来匹配元素的子元素很容易,但是我想要一个关于这个特定元素是否匹配的真/假答案?

该元素可能没有ID(并且由于此原因我无法将其分配给它),因此我无法将我的选择器应用于元素的父级并查找与我的ID相同的子级.

这会按预期工作吗?我无法弄清楚Javascript对象的比较.

$(selector, myElement.parentNode).each({
  if (this == myElement) // Found it
});
Run Code Online (Sandbox Code Playgroud)

似乎有一种简单的方法来查看DOM元素是否与jQuery选择器匹配...

Zac*_*ach 32

您可以使用以下is()方法:

if($(this).is("p")){
 // ...
}
Run Code Online (Sandbox Code Playgroud)

  • 但这是这样的吗?`$(this).is("body .content p")` -我需要这样的东西 (2认同)

vsy*_*ync 5

没有 jQuery,使用Element.matches()

var elements = document.querySelectorAll('div');

console.log(
   elements[0].matches('.foo'),         // true
   elements[0].matches('.bar'),         // false
   elements[1].matches('[title=bar]'),  // true
)
Run Code Online (Sandbox Code Playgroud)
<div class='foo'></div>
<div title='bar'></div>
Run Code Online (Sandbox Code Playgroud)


查看支持的浏览器列表