提问人:schnydszch 提问时间:11/20/2021 最后编辑:schnydszch 更新时间:11/22/2021 访问量:112
Javascript 遍历具有文本内容的 p 元素并获取值
Javascript traverse towards a p element with a text content and get the value
问:
我想使用纯 javascript 在 p 段落中获取带有前置文本的强标签的值。问题是这条记录甚至没有 id 或 class 元素,所以我不知道如何遍历。我有以下html要遍历:
<div class="panel-body">
<p>Short Title: <strong>Strengthening Compliance With Occupational Safety And Health Standards And Providing Penalties For Violations Thereof</strong>
...OMITTED for BREVITY..
<br>
Date Read:
<strong>2016-07-26</strong>
...
More p elements same the same pattern as above:
A Header (That I'm interested in to be able to identify what the text is about: <strong>The Text I am interested in</strong>
...
</div>
我正在尝试评估,但似乎我无法得到我需要的东西:
var text = document.evaluate("//p[contains(., 'Short Title:')]/firstElementChild", document, null, XPathResult.ANY_TYPE, null );
console.log(text);
更新: 似乎我能够使用以下代码遍历我的文档:
var text = document.evaluate("//p[contains(., 'Short Title:')]/childNodes", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null );
if (text.singleNodeValue !== null) {
var Details = text.singleNodeValue.textContent;
}
console.log(Details);
但问题是我也在 div 中获得了所有其他文本内容,如下所示:
Short Title: Strengthening Compliance With Occupational Safety And Health Standards And Providing Penalties For Violations ThereofDate Read: 2016-07-26
更新2: 显然,我试图在 p 元素内遍历的 html 文档有更多的标题,这些标题仅由中断“br”标签分隔,如下所示:
<p>Short Title: <strong>The Short Title</strong>
<br>
<strong>Principal Author/s:</strong>
Name of a lot of authors.
<br>
Date Read:
<strong>2016-07-26</strong>
这可能是我的第一个 javascript 代码抛出 p 元素的所有 textcontent 的原因。
答:
1赞
ejose19
11/20/2021
#1
您可以简单地使用querySelector
const text = document.querySelector('p > strong').innerText
评论
0赞
schnydszch
11/21/2021
你好!我编辑了我的问题,因为我实际上有很多这样的模式,例如:文本标题:<strong>文本内容</strong><br>另一个文本标题:<strong>另一个文本内容</strong>。因此,我实际上可以遍历到这个具有同级(?)强元素的文本标题。
下一个:为什么要缓存jQuery对象?
评论