【问题标题】:Testing innerHTML for partial string测试部分字符串的innerHTML
【发布时间】:2018-12-28 20:33:51
【问题描述】:

好的,我正在尝试循环浏览 iFrame 中的 html 元素以捕获报告中的某些字段。 HTML的结构如下

html>frameset>frame>html>body>table>tbody>tr>td.set2>pre>(Text)

我用来捕获 .innerHTML 的 JS 在下面

document.parentWindow.frames("Frame"B).document.all.tags("pre")[x].innerHTML

现在,上面的行将允许我捕获包含报告名称和我正在寻找的信息的“pre”元素的 innerHTML。我目前正在 IE 控制台中工作,以便在将 JS 移动到 AutoHotKey 之前正确获取它,但下面是我试图用来循环遍历所有“pre”元素的函数

function preTest(){
for(x=0; x < pre.length; x++){
    if(pre[x].innerHTML = "CLMPRUN"){
      return pre[x].innerHTML;
    } else {
    return false;
    }
  }
};

现在,问题是当我运行该函数时,它只返回“CLMPRUN”。每当我更改 if 语句中的测试时,它就会返回,就好像我已将 pre[x].innerHTML 声明为变量一样。

有什么想法吗?

【问题讨论】:

    标签: javascript html autohotkey


    【解决方案1】:

    if 语句中的比较需要使用 ===== 运算符。仅使用一个 = 意味着您正在为属性分配值。

    【讨论】:

    • 所以,我添加了正确的比较 '==',但我仍然没有得到我想要的结果。
    • 我必须弄清楚这些溢出的cmets,无论如何,我需要弄清楚如何搜索'pre'元素的整个innerHTML,以及它是否有正确的字符串,即“CLMPRUN”返回'pre' 元素的 innerHTML。
    • 您可以随时使用indexOf 方法来检查是否包含字符串。你最终会得到这样的结果:if(pre[x].innerHTML.indexOf("CLMPRUN") &gt;= 0) { ... }
    【解决方案2】:

    问题是这一行:'pre[x].innerHTML = "CLMPRUN"' 您正在分配文本而不是比较。这就是它不断返回“CLMPRUN”的原因。

    请在此处查看:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-25
      • 1970-01-01
      • 2020-07-16
      • 1970-01-01
      • 2011-07-25
      • 2011-08-22
      • 1970-01-01
      相关资源
      最近更新 更多