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);
);
【讨论】:
我认为是element
或event.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 UI 的纯 HTML/CSS?