我更熟悉 Jquery,但我正在使用 Google Closure。我想知道 Google Closure 中是否有类似 .is() 的函数或库在 jQuery 中,我可以检查目标元素是否与 css 选择器匹配。我找到了一个插件 goog.dom.query,但这并不完全是我所需要的,因为它用于查找元素。
请您参考如下方法:
我自己并没有真正使用 Google Closure 库,但经过一些研究后。我发现了一些可能与此相关的方法github library(unit tests)和 dom.js图书馆。您可以使用 .tagName ,与严格等于结合使用。例如,如果我正在寻找 DIV 元素。
var parent = goog.dom.createDom(goog.dom.TagName.DIV);
parent.tagName === goog.dom.TagName.DIV
或者如果我正在寻找 li 元素。
parent.tagName === goog.dom.TagName.LI
您可以阅读有关不同的内容(并找到)TagName W3C Index of Elements 上的选项.
这里是 extends 的方法示例google 闭包,并可能复制 .is() 的基本功能(jQuery 等效 .is('li'))..
/**
* Checks the type of an element
* @param {Node} element
* @param {string} type
* @return {boolean}
*/
goog.dom.is = function(element, type) {
switch(type){
case goog.dom.TagName.DIV:
return true;
break;
case goog.dom.TagName.P:
return true;
break;
case goog.dom.TagName.LI:
return true;
break;
case goog.dom.TagName.UL:
return true;
break;
//Add more types...
}
return false;
};
虽然可以改进,this而不是 element 会有所帮助。 ;)
