在追加到 JQuery 之前检查 DOM 元素是不是自动存在
Posted
技术标签:
【中文标题】在追加到 JQuery 之前检查 DOM 元素是不是自动存在【英文标题】:Check if DOM Element exists automatically before appending in JQuery在追加到 JQuery 之前检查 DOM 元素是否自动存在 【发布时间】:2011-10-23 16:09:04 【问题描述】:基本上,我希望每次向 DOM 追加或添加我要放入的元素不存在时运行检查。我正在制作复杂的应用程序,有时会制作重复的元素,导致事件无法正确触发。
我不想每次更改 DOM 时都必须手动运行此检查,我希望在调用 prepend 或 append 函数时自动运行它。调用函数时是否有可以监听的事件?
我不会在应用程序发布时使用此检查,因为我意识到它可能会严重影响性能,但在开发过程中它会非常有价值。
【问题讨论】:
是否希望此检查基于元素 ID,或者...? 【参考方案1】:只需覆盖jQuery.fn.append
:
(function()
var append = jQuery.fn.append;
jQuery.fn.append = function()
var elemExists = ...;
if (!elemExists)
append.apply(this, arguments);
;
)();
对jQuery.fn.prepend
执行相同的操作。这很好用,因为您必须对生产进行的唯一更改就是排除此功能。
【讨论】:
谢谢!这正是我想要的。 另外,现在你可以使用Node.contains()
方法。参考:How can I check if an element exists in the visible DOM?.以上是关于在追加到 JQuery 之前检查 DOM 元素是不是自动存在的主要内容,如果未能解决你的问题,请参考以下文章