测试jQuery event.classList为空

时间:2012-10-19 02:57:55

标签: javascript jquery syntax operators conditional

我正在尝试在jQuery的e.classList上测试为空(如果为它传递参数,请讨论jQuery传递给事件的DOM映射值)。

所以,我正在做一个荒谬的JS检查为空,因为我想退出函数e.classList.length小于整数1的实例。

奇怪的是,我已经尝试了

if ( ( typeof newTargetClasses !== "undefined" && newTargetClasses !== null ) && newTargetClasses.length > 0 ) {

但即使true中没有项目:/

,它也会返回e.classList
$( window ).on( 'mouseenter', '.my-class', function( e ) {

    var newTargetClasses = e.toElement.classList;

    if ( ! isNaN( newTargetClasses.length ) && newTargetClasses.length > 0 ) {
        $.each( newTargetClasses, function() {
            if ( ! thePopover.has( '.' + this ).length > 0 ) {
                el.my_jquery_func('hide');
                return false;
            }
        })
    }
}

我错过了这些布尔值?在我尝试检查的条件期间newTargetClasses.length返回0的val并且number的类型

1 个答案:

答案 0 :(得分:1)

classList不是jQuery的东西,它是一个DOM API的东西。这也不能完全跨浏览器工作,因为根据MDN,IE9不支持它。

MDN ClassList

至于你的代码,如果条件为

,你应该能够简化
// classList will always be falsy in IE9 so this will never run
if (e.toElement.classList && e.toElement.classList.length ) {}.

如果您希望它是跨浏览器,那么您可以尝试类似

的内容
if ( $.trim(e.toElement.className) ) { ... }