0

我有以下代码来侦听插入的 DOM 节点

$('#box').on('DOMNodeInserted', function(e) {
    var news = e.target.className.split(" ");
    if (news[news.length-1].indexOf("today")){ 
        //do something                     
    }
});

当插入一个节点时,上面的代码应该检查该类以查看它是否具有字符串“today”。插入的html的结构是这样的……

<div class="posts news today">

如果它有“今天”,它应该“做某事”

问题是由于某种原因,上面的函数显示插入的节点有一个类

""

即使插入的元素是

<div class="posts news today">

但是,已经存在的元素显示了正确的类

posts news today

问题出在这段代码的某个地方,但我不确定为什么插入的节点会被解释为没有类,而现有节点有。

为了澄清,这段代码

$('#box').on('DOMNodeInserted', function(e) {
    var news = e.target.className;
    console.log(news);
});

为页面加载时已存在的元素输出正确的类名,但为插入的元素显示“”。如上所述,插入的元素包含正确的类信息,只是没有被上面的代码解释。

4

1 回答 1

3

无论如何,您都在使用 jQuery —— 为什么不到处使用它呢?

if ($(e.target).hasClass('today')) {
   // ...
}

http://api.jquery.com/hasClass

于 2013-04-02T16:06:24.677 回答