Javascript 没有元素ID时的InnerHTML

Javascript 没有元素ID时的InnerHTML,javascript,html,Javascript,Html,我想在我的网站上的特定“组”页面上获取元素的内部文本。这些称为“报告页面”的页面都有一些常见的html,如下所示: <!-- start report description --> <div class="report-description-text"> <h5>Description</h5> Hello World, here is a sample report. <br/> 描述 你好,世界,这里是一个示例报告。 这

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

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

描述
你好,世界,这里是一个示例报告。

这是我使用的平台生成的html。奇怪的是,以“Hello World”开头的文本并没有包含在它自己的标记中,比如
标记,但这就是我所拥有的

我正在尝试为搜索和社交开放图创建动态元标记。在本例中,我想获取文本“Hello World,这里是一个示例报告”作为元描述

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

我已经附加了一个屏幕的检查元素与铬显示选择

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

var descrptn=[我在这里放什么?]

制作: 文件编写(descrptn)

这会给 你好,世界,这里是一个示例报告

您可以在此处看到实际示例页面:


如果您打算只支持IE8+,则可以使用
.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);
    }
}
var elems=document.querySelectorAll('.report description text');
var totalElems=元素长度;
对于(var ii=0;ii=2&&
elems[ii].childNodes[1].nodeType==3{/*请确保它是文本节点*/
description=elems[ii].节点值;
文件。书写(说明);
}
}

在我的问题中,我以“Hello World…”为例,在屏幕截图中,相应的文本是“欢迎来到Ushahidi…”感谢下面的答案,我很感谢您的回答。并不是说答案很复杂,它们看起来很直截了当,但并不像我想象的那么简单。我在Chrome的控制台上闲逛,回想一下我不久前读到的一本关于使用点符号导航DOM的JS教科书。我期待(并试图)使用类似于document.getElementsByClassName('report-description-text').h5的东西。这听起来对吗?我是在胡说八道吗?如果你对答案发表评论,这样作者就能看到答案,这会更容易。但是,您认为这里可以使用
getElementsByClassName
是正确的。然而。此外,在某些情况下,除了
表单
之外,我在任何地方都没有遇到使用点表示法。此外,如果它不是一个约束,您应该考虑使用<代码> jQuery < /COD>这样的DOM操作任务来获得对IE6的所有浏览器的支持。@ DavidThomas Ah,尼斯catch。谢谢