2013-03-26 60 views
0

以下我试图追踪插入到p-msg-class类中的最后一个元素,但由于其他元素动态插入到.middle-ui,.flt-rt,.content-ht中,所以我看到该警告很多次。我怎么能只跟踪p-msg-class,并警告停止所有其他HTML动态插入jquery获取特定类的味精

$('.middle-ui,.flt-rt,.content-ht').bind('DOMNodeInserted', function(event) { 
    if($(this).find(".visitor-msg-cont").last().find(".p-msg-class").length > 0) 
    { 
     alert($(this).find('.visitor-msg-cont').last().find('.p-msg-class').last().html()); 
    } 
    }); 
+0

你试过'find('。p-msg-class:last')'? – 2013-03-26 14:33:55

+0

是的,但它怎么会每次解决问题的前例:class =“new”插入我得到警报.. – Rajeev 2013-03-26 14:35:08

+0

哦,我看到现在的问题是什么。所以,你必须找出插入的元素类是什么,如果它是'p-msg-class',那么执行警报。新元素是否总是附加到最后? – 2013-03-26 14:42:38

回答

0

好吧,这样的事情可以工作。获取添加的最后一个元素的类并检查它是否为“p-msg-class”。

$('.middle-ui,.flt-rt,.content-ht').bind('DOMNodeInserted', function(event) { 
    var newElement = $(this).find(".visitor-msg-cont").last().children().last().attr("class"); 
    if(newElement === "p-msg-class")   
    { 
    alert($(this).find('.visitor-msg-cont').last().find('.p-msg-class').last().html()); 
    } 
}); 

,如果你知道子元素将全部DIV或P那么你可以使用children(div:last)或类似的东西。

不确定这会起作用,但它可能会指向正确的方向。

+0

hmnn我试过this.but这只是提醒所有元素插入到'.middle-ui,.flt-rt,.content-ht' – Rajeev 2013-03-27 18:20:20

0

没有看到更多的html结构,很难回答这个问题。我假设你是动态插入可能有或没有类.p-msg-class的DOM元素。

而不是搜索最后插入的.p-msg-class元素,为什么不在插入时抛出警报?这样的事情(未经测试):

$('.middle-ui,.flt-rt,.content-ht').bind('DOMNodeInserted', function(event) { 
    if($(event).target.hasClass('p-msg-class')) 
    { 
     alert($(event).target.html()); 
    } 
});