jquery只获取特定类的消息

时间:2013-03-26 14:28:16

标签: jquery-ui jquery dom

在下面我试图跟踪插入p-msg-class类的最后一个元素,但是由于动态插入.middle-ui,.flt-rt,.content-ht的其他元素,我很多次都会看到警报。如何仅跟踪p-msg-class并使动态插入的所有其他html停止警报

  $('.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());
     }
  });

2 个答案:

答案 0 :(得分: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)或类似的东西。

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

答案 1 :(得分: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());
    }
});