Javascript 如何获取显示在父标记之前的文本内容?

Javascript 如何获取显示在父标记之前的文本内容?,javascript,html,dom-events,Javascript,Html,Dom Events,我正在尝试获取出现在父div标记上方的h3标记的文本内容。代码重复,添加id不是h3标记的选项。希望在纯Javascript中实现这一点。我的html目前是 <h3>Some header</h3> //textContent I am trying to get. <div class="panel panel-success"> //parent <div id="someid" class="

我正在尝试获取出现在父div标记上方的h3标记的文本内容。代码重复,添加id不是h3标记的选项。希望在纯Javascript中实现这一点。我的html目前是

<h3>Some header</h3> //textContent I am trying to get.
<div class="panel panel-success"> //parent
    <div id="someid" class="panel-heading"></div> //child
    <span class="pull-right glyphicon glyphicon-list-alt" style="padding-right: 1%"
                      onclick="myFunc(this.parentNode.id, what.goes.here?)"></span> //this needs to return parent id and the value of h3 tag
</div> 
<h3>Some other header</h3> //textContent I am trying to get.
<div class="panel panel-success"> //parent
    <div id="someid" class="panel-heading"></div> //child
    <span class="pull-right glyphicon glyphicon-list-alt" style="padding-right: 1%"
                      onclick="myFunc(this.parentNode.id, what.goes.here?)"></span> //this needs to return parent id and some other tag when this span button is clicked
</div>
<h3>yet another header</h3> //textContent I am trying to get.
<div class="panel panel-success"> //parent
    <div id="someid" class="panel-heading"></div> //child
    <span class="pull-right glyphicon glyphicon-list-alt" style="padding-right: 1%"
                      onclick="myFunc(this.parentNode.id, what.goes.here?)"></span> //this needs to return parent id and yet another header when clicked.
</div>  
Some header//text我试图获取的内容。
//母公司
//孩子
//这需要返回父id和h3标记的值
我正在尝试获取的其他头//文本内容。
//母公司
//孩子
//单击此范围按钮时,需要返回父id和其他一些标记
还有一个标题//我正在尝试获取的文本内容。
//母公司
//孩子
//单击时需要返回父id和另一个标题。

这段代码重复了很多次,h3的textContent和div id每次都会改变。我试图返回h3标记的textContent值,该值显示在我单击的span按钮上,相对于单击期间显示的div标记。
h3
标记不是任何其他父/子关系的一部分,它是独立的…

span
单击处理程序可以访问上述
h3
元素,如下所示:

this.parentNode.previousSibling.textContent
请参阅:

document.getElementByID(“someid”).parentElement.previousElementSibling.textContent

已编辑

let content=document.queryselectoral('h3');
让计数=content.length;
如果(计数){
for(设i=0;i

这不起作用,因为html片段正在重复。。。所以有很多不同的h3标签。使用
document.getElementsByTagName('h3')[0]。textContent
仅返回它找到的第一个标记。如果知道您正在页面上查找第n个h3标记,则此解决方案有效,但不回答有关子-父配对的帮助。在这种情况下,因为h3标记的数量是任意的。因此,我无法可靠地预测我的答案的索引数!这不会返回任何结果。一片空白。我添加了更多的代码部分,以显示在下一个h3标记开始之前父标记关闭。这是一个很好的解决方案,但在这种情况下不起作用,因为h3标记的数量是任意的。因此,我无法可靠地预测for内容的索引号。因此,如果有许多
h3
,您可以使用for循环获取它们的所有文本,我不需要所有
h3
标记。仅与
onclick
span
相关的
h3
标记不是
div
标记的父项。它的standaloneI刚刚指出,Eelke经过编辑的答案应该是正确的,之前的siblingI添加了更多的html代码。这也许可以解释为什么这不起作用。
h3
标记不是
div
tagI的兄弟,我刚刚测试了这个,它对我有效。确保将“someid”重命名为您试图使用的实际id,在您的示例中,这三个id都使用相同的id。如果它确实是这样的,您将需要使用getElementsByClass并使用它生成的数组。我刚刚尝试了
document.getElementByID(document.parentNode.id).parentElement.previousElementSibling.textContent
,但仍然不起作用。
let content = document.querySelectorAll('h3');

let count = content.length;

if (count) {

  for (let i = 0; i < count; i++) {
    alert(content[i].textContent);      
  }
}