当没有元素ID时,InnerHTML

时间:2014-04-12 13:08:21

标签: javascript html

我想抓住特定"组"上的元素的内部文本。在我的网站上的页面。这些页面称为"报告页面"都有一些常见的html,如下所示:

<!-- start report description -->
<div class="report-description-text">
<h5>Description</h5>
Hello World, here is a sample report.
<br/>

这是我使用的平台生成的html。对我来说奇怪的是,文本开始&#34; Hello World&#34;它不包含在自己的标签中,例如<p>标签,而是我拥有的标签。

我正在尝试为搜索和社交开放图创建动态元标记。在这种情况下,我想抓住文本&#34; Hello World,这是一个示例报告&#34;作为元描述。

互联网上说使用getElementsById但这里没有ID。

我已经在Chrome上附加了一个检查元素屏幕,显示了选择。

如何将上述文本分配给变量,如下所示:

var descrptn = [我该放什么?]

生产: 文件撰写(descrptn);

会给 Hello World,这是一个示例报告

您可以在此处查看实际的示例页面:http://tinyurl.com/qxvm5y7

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您打算仅支持IE8 +,那么您可以safe(ish)ly使用.querySelectorAll然后遍历孩子以找到您所追求的文本节点:

var elems = document.querySelectorAll('.report-description-text');
var totalElems = elems.length;
for(var ii = 0; ii < totalElems; ii++) {
    if (elems[ii].childNodes && 
        elems[ii].childNodes.length >= 2 && 
        elems[ii].childNodes[1].nodeType === 3){ /* make sure it is a TEXT_NODE */

        description = elems[ii].nodeValue;
        document.write(description);
    }
}