JQuery - 使用带有 DOMNodeInserted 的元素

Posted

技术标签:

【中文标题】JQuery - 使用带有 DOMNodeInserted 的元素【英文标题】:JQuery - use element with DOMNodeInserted 【发布时间】:2011-10-12 10:55:25 【问题描述】:

当然这个问题很简单,但我就是想不通。

我正在使用 DOMNodeInserted 事件来检测何时插入新元素。

我不知道如何使用当前元素,例如获取它的父 id。

现在我有这样的功能:

document.addEventListener("DOMNodeInserted", function(event)
  var element = event.target;

  if (element.tagName == 'DIV') 
    if (element.id == 'ndiv_3-1VTSTHR') 
     alert($('#ndiv_3-1VTSTHR').parent().get(0).tagName);
    
  
);

这可行,但它会给我 ndiv_3-1VTSTHR 元素的父元素。我想知道任何元素的父级,使用 JQuery。

我试过了

alert($(this).parent().get(0).tagName);

但没有运气。

【问题讨论】:

删除if 以过滤特定ID 怎么样?然后使用$(element) @pimvdb:不,尝试使用 alert($(element).tagName);并给我未定义。 【参考方案1】:

您可能需要围绕element.target 初始化一个jQuery 对象。试试:

document.addEventListener("DOMNodeInserted", function(event) 
    alert($(event.target).parent()[0].tagName);
);

【讨论】:

我认为是elementevent.target :) 谢谢,这行得通。但是如果我让 var el = $(event.target).parent()[0];我可以将它与 alert($(el).tagName) 一起使用吗? @Parkyprg, tagName 是由 DOM 元素而非 jQuery 对象公开的属性。你必须写el.tagName$(el)[0].tagName。最好将 jQuery 对象本身存储在el:var el = $(event.target).parent();。从那里您可以通过el[0].tagName 获取元素的标签名称。

以上是关于JQuery - 使用带有 DOMNodeInserted 的元素的主要内容,如果未能解决你的问题,请参考以下文章

使用带有数组的 Jquery 选择器[重复]

jQuery:用于博客的带有核心 jQuery 或 jQuery UI 的纯 HTML/CSS?

一个易于使用的rss插件,用于带有模板的jquery。

JQuery - 使用带有 DOMNodeInserted 的元素

如何使用带有行子级的 jQuery 数据表构建表

如何使用 jQuery 选择带有文本的按钮