![](/img/trans.png)
[英]How can I tell whether or not an element inside an array is a number or a word (all elements in quotes)
[英]How can I tell whether an element matches a selector?
假設我有一個 DOM 元素 - 我如何判斷它是否匹配 jQuery 選擇器,例如p
或.myclass
? 使用選擇器來匹配元素的子元素很容易,但我想要這個特定元素是否匹配的真/假答案?
該元素可能沒有 ID(出於其他原因,我無法為其分配一個隨機 ID),因此我無法將選擇器應用於元素的父級並查找與我的 ID 相同的子級。
這會按預期工作嗎? 我無法弄清楚 Javascript 對象比較。
$(selector, myElement.parentNode).each({
if (this == myElement) // Found it
});
似乎有一種簡單的方法可以查看 DOM 元素是否與 jQuery 選擇器匹配......
您可以使用is()
方法:
if($(this).is("p")){
// ...
}
var elements = document.querySelectorAll('div'); console.log( elements[0].matches('.foo'), // true elements[0].matches('.bar'), // false elements[1].matches('[title=bar]'), // true )
<div class='foo'></div> <div title='bar'></div>
我無法將我的選擇器應用於元素的父元素並尋找與我的 ID 相同的子元素。
無論如何您都不能這樣做 - id
屬性必須是唯一的。
也許你只是想要:
$(".complicated #selector p.with > div.manyParts").length
如果沒有匹配,長度返回 0,這是假的,所以你可以在if
語句中使用它,比如:
if($(".doesThis #exist").length) {
// Do things
}
可能值得將它存儲在一個單獨的變量中,然后檢查長度; 這樣,如果您需要對匹配的元素做任何事情,您不必再次執行相同的選擇器。
試試Element.matches()
document.addEventListener("click", event => {
if (event.target.matches(".elementsClass")) {
// It matches
} else {
// Does not match
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.