插入的DOM节点的类没有被传递

时间:2013-04-02 16:03:27

标签: javascript jquery dom comparison

我有以下代码来侦听插入的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);
});

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

1 个答案:

答案 0 :(得分:3)

你还在使用jQuery - 为什么不在任何地方使用它?

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

http://api.jquery.com/hasClass