如何确保特定节点已加载并可用于javascript/jquery?

如何确保特定节点已加载并可用于javascript/jquery?,javascript,jquery,Javascript,Jquery,在一家酒店内,我试图通过使用cjs chrome扩展注入javascript,在加载页面时以及在用户更改日期时获取可用房间和价格。我试着使用$window.onload,function来等待所有资产的加载,但这似乎并没有100%的时间起作用。有时我必须刷新页面几次才能使其正常工作 这是我目前的代码。使用window.onload,我将执行函数grabInfo 我想也许我可以使用$'.thumb-cards\u products.onready,function,等待加载目标元素,但这似乎不起作

在一家酒店内,我试图通过使用cjs chrome扩展注入javascript,在加载页面时以及在用户更改日期时获取可用房间和价格。我试着使用$window.onload,function来等待所有资产的加载,但这似乎并没有100%的时间起作用。有时我必须刷新页面几次才能使其正常工作

这是我目前的代码。使用window.onload,我将执行函数grabInfo

我想也许我可以使用$'.thumb-cards\u products.onready,function,等待加载目标元素,但这似乎不起作用


虽然window.onready可以工作,但它与$'.thumb-cards_products.onready不一致,该函数根本不起作用。最后,我尝试专门从窗口获取数据。_globalTracking.AvailableRooms,它很可能是从异步api调用返回的。

尝试设置轮询所需内容的间隔,一旦可用,就可以运行函数

function callback() {
   if ($('myElement').length) {
       clearInterval(token);
       grabInfo();

       let targetNodes = $('.thumb-cards_products');
       let myObserver = new MutationObserver(mutationHandler);
       let obsConfig = {
               childList: true,
               characterData: true,
               attributes: true,
               subtree: true
           };

       myObserver.observe(targetNodes[0], obsConfig);
}

const token = window.setInterval(callback, 200);

当页面准备就绪时触发window.onready事件,该事件与卡信息加载无关,由于卡是通过javascript代码异步加载的。@GramThanos让侦听器等待卡元素可用对我来说有意义吗?还是有更好的方法等待实际api返回所需的信息?没有这样的事件。按照Daron Spaulding的回答。
function callback() {
   if ($('myElement').length) {
       clearInterval(token);
       grabInfo();

       let targetNodes = $('.thumb-cards_products');
       let myObserver = new MutationObserver(mutationHandler);
       let obsConfig = {
               childList: true,
               characterData: true,
               attributes: true,
               subtree: true
           };

       myObserver.observe(targetNodes[0], obsConfig);
}

const token = window.setInterval(callback, 200);