Estoy usando un observador de mutaciones para observar los cambios que ocurren en un elemento <ul> . al observar, obtengo el siguiente resultado:
<li class="rt__body-row full flex gc-07 rt__body-row--odd"> <span class="rt__row-left short">48,359.50</span> <span class="rt__row-center">0.063</span> <span class="rt__row-right">01:57:44</span> </li>Ahora quiero escribir una declaración if sobre el segundo texto de tramos (0.063). ¿Cómo dirijo el segundo tramo en javascript? Soy bastante nuevo en la programación y a continuación está mi código:
function obser1() { const trades = document.querySelector('.scrollbar-dark'); const observer = new MutationObserver(function (mutations) { mutations.forEach(function (mutation) { if (mutation.addedNodes.length) { console.log(mutation.addedNodes[0]); } }) }); console.log("obs1"); observer.observe(trades, { childList: true, subtree: true, attributes: true, characterData: true }) console.log("observed"); } window.setTimeout(obser1, 1700);A continuación se muestra mi archivo de manifiesto:
"name": "Bybit orderbook color", "version": "1.1", "manifest_version": 2, "content_scripts": [ { "matches": [ "https://www.bybit.com/trade/usdt/BTCUSDT" ], "css": [ "Style.css" ], "run_at": "document_idle", "js": [ "background.js" ] } ], "permissions": [ "activeTab" ] }Suponiendo que la mutación.addedNodes[0] es una colección html, podrías hacer
const vals = [...mutation.addedNodes[0].querySelectorAll("span")].map(span => span.textContent);Si una cadena se puede hacer
const fragment = document.createElement("div"); fragment.innerHMTL = mutation.addedNodes[0]; const vals = [...fragment.querySelectorAll("span")].map(span => span.textContent);