如何使用jquery在页面加载完成后检查新插入的元素

How to use jquery to check newly inserted elements after page is finished loading?

本文关键字:新插入 检查 插入 元素 jquery 何使用 加载      更新时间:2023-09-26

好的,所以我试图使用jquery或greasemonkey/tampermonkey userscript来创建一个基本的聊天"ding"声音每当我的用户名被提及。

$(window).load(function(){
var $ = window.jQuery;
var jQuery = window.jQuery;
//Notify Sound preload
var player = document.createElement('audio');
player.src = '/ding.mp3';
player.preload = 'auto';
var me = 'secretsquirrel';
window.addEventListener('load', function() {
$('.chat-main').on('DOMNodeInserted', 'li', function check(event) {
    if ($(event+'.mention:has('+me+')' === true)) {player.play(); console.log('Found my name!');}
});
}, false);
});

我知道domnodeinserts已弃用,这不是问题。我的问题是我只希望它在新插入的dom节点上有我的用户名在里面。节点是<a>标签,class="mention"嵌套在<li>中,用户名嵌套在<span>中。

如果我不使用$(window).load(function()的ding函数工作,但它做它的每一个实例的名称,所以如果页面刷新等,它将console.log和ding多次。

我仍然很新的jquery,帮助?lol

IE11+

var observer = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    // Will be something like { addedNodes: NodeList[1]}
    console.log(mutation.addedNodes);
  });
});

你可以使用MutationObserver API