【问题标题】:Get the first child node using the Internet Explorer COM object使用 Internet Explorer COM 对象获取第一个子节点
【发布时间】:2016-06-05 19:07:36
【问题描述】:

我有一个包含以下代码的网站:

<div id="past">
<div data-rollid="99999" class="ball kugel-2">2</div>
<div data-rollid="99998" class="ball kugel-2">2</div>
<div data-rollid="99997" class="ball kugel-2">2</div>

我想得到这个数字“2”。我知道我可以通过
past := wb.document.getElementById("past")
拾起“过去” 但是如何从第一个子节点获取值呢?

【问题讨论】:

  • 你真的应该尝试解释你做了什么,你尝试了什么,你得到了什么结果。我在您的帖子中没有看到很多 AHK 代码?你知道 .innerText 在 AHK 中检索 InnerHTML 吗?
  • @PGilm 在我看来,这个问题是关于 javascript 而不是 autohotkey,对吗?
  • .innerText 不是特定于 AHK 的,并且与 .innerHTML 不同(两者都在 COM 对象中可用,并且可以使用 AHK 访问)。只是说。

标签: com autohotkey getelementbyid


【解决方案1】:

你没有做太多的工作,但你可以尝试,对于第一个“undertag”:

    wb.Document.getElementByID("past").childnodes.item[0].innerText

对于第二个“undertag”:

    wb.Document.getElementByID("past").childnodes.item[1].innerText

等等

否则,看看这样的:

    wb.document.body.querySelector("data-rollid='99998']").innerText;

    wb.document.getElementByID("past").querySelector("data-rollid='99998']").innerText;

甚至

    wb.document.getElementByID("past").childnodes.querySelector("data-rollid='99998']").innerText;

这可能有效(您可能需要尝试使用语法)。 . .

第,

【讨论】:

    【解决方案2】:

    这可以获得某个类的所有元素:

    elements:=ie.document.getElementsByClassName("ball kugel-2")
    

    或者你可以这样做:

    past:= wb.document.getElementById("past")
    children:=past.children
    while(a_index <= children.length, i:=a_index-1)
         msgbox, % children[i].innertext
    

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 2011-09-08
      • 2011-01-25
      • 2015-08-13
      • 1970-01-01
      • 1970-01-01
      • 2017-06-06
      • 2019-12-19
      • 2011-12-24
      相关资源
      最近更新 更多