Javascript从嵌套的Div获取Div信息

Javascript从嵌套的Div获取Div信息,javascript,dom,google-chrome-extension,Javascript,Dom,Google Chrome Extension,我正在尝试做一个google chrome扩展,它可以从一个div、一个在线游戏网站、拍卖网站等获取倒计时计时器的数量。当我获得了这个数量后,我可以在一个div中发布不同的时间计算结果,并将其注入html 我的div注射效果很好。获得时间是个问题 目前的网站,我得到的倒计时信息是一个游戏网站。我找到了包含倒计时信息和div id名称的div,但实际倒计时信息位于没有id的嵌套div中 各分区的结构如下: <div id="countdowndiv"> <div class

我正在尝试做一个google chrome扩展,它可以从一个div、一个在线游戏网站、拍卖网站等获取倒计时计时器的数量。当我获得了这个数量后,我可以在一个div中发布不同的时间计算结果,并将其注入html

我的div注射效果很好。获得时间是个问题

目前的网站,我得到的倒计时信息是一个游戏网站。我找到了包含倒计时信息和div id名称的div,但实际倒计时信息位于没有id的嵌套div中

各分区的结构如下:

<div id="countdowndiv">
   <div class="info">
       <div class="time">
           1m 39s
       </div>
   </div>
</div>

1m 39s
有多个div的类为“time”和“info”,因此我认为我不能使用document.getElementsByClassName()


有没有办法得到这个倒计时数?

您可以使用
document.queryselectoral('div#countdowndiv div#time')
,但您应该注意它不完全兼容跨浏览器。更多信息。

好吧,由于您不必担心跨浏览器问题(因为唯一的目标浏览器是Chrome),您可以安全地使用单个选择器表达式获取特定元素,结合
getElementsByCassName
getElementById
的功能。例如:

var countDownNode = document.querySelector('#countdowndiv .time'),
    countDown     = countDownNode && countDownNode.innerHTML;
尽管如此,如果结构与问题中所示完全相同,还有一种更简单的方法:

var countDown = document.getElementById('countdowndiv').textContent;

。。。作为
textContent
属性,引号“…返回每个子节点的textContent属性值的串联,不包括注释和处理指令节点”。在提供给主解析块之前,您可以对其使用
trim
,或者保持原样。

有许多方法,您可以沿着dom遍历:

document.getElementById('countdowndiv').children[0].children[0].innerHTML

事实上,除非你必须明确地支持IE7,否则QS/QSA就是。