forEach,索引改变时的for循环行为

问题描述 投票:0回答:0

我正在尝试使用预加载的东西来屏蔽 whatsappweb 上的电话号码,为了实现这一点,我查询父元素的子元素并检查它是否包含 +90 或 0 并将其替换为另一个文本并保持不变,那些没有 +90 或 0

我的初始代码是:

let contactNamesLength = contactNames.length;
console.log(contactNamesLength)
for (let i = 0; i < contactNamesLength; i++) {
  const element = contactNames[i];
  element.title = "";
  if (element.textContent && element.innerText.includes("+90", 0) && !element.innerText.includes("REPLACEDTEXT")) {

    element.innerText = element.textContent.replace(
      /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*/g,
      "REPLACEDTEXT"
    );

    if (element.parentNode.className == "_3q9s6") {
      element.innerText = element.textContent.replace(
        /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*/g,
        "REPLACEDTEXT"
      );
    }
    // changing group name on chatlist to Xx
    if (element.parentNode.className == "Hy9nV") {
      element.innerText = element.textContent.replace(
        /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*/g,
        "REPLACEDTEXT"
      );
    }
  }
}

问题是:

当我们在 whatsappweb 上滚动时,index(i) 会发生变化,它会替换文本,即使它不包含 0 或 +90

我的问题是:

有没有一种方法,即使添加了新孩子,我也可以一个一个地查询这些孩子?

我尝试了什么?

1 - 我尝试使用 forEach 代替 for 循环,但结果是一样的。

 contactNames.forEach(child => {
      // I tried to use forEach instead for loop but result was same.
      });

2 - 也尝试使用 MutationObserver 但结果仍然相同。

我可能要解决的问题:

我可以重新呈现(刷新,重新加载)元素而不用 javascript 刷新整个页面吗?

编辑:

javascript loops whatsapp preload tauri
© www.soinside.com 2019 - 2024. All rights reserved.