【发布时间】:2021-03-14 23:55:11
【问题描述】:
我无法从 Class 属性中获取特定的文本。文本既有名称又有 ID。两者对我都很重要,但我需要将它们拆分并放置在单独的数组中。
<span class="locDescription"><b>Name1</b><br> ID1</span>
<span class="locDescription"><b>Name2</b><br>ID2</span>
<span class="locDescription"><b>Name3</b><br> ID3</span>
我的第一个想法是弹出每个元素中的最后一项(转换为字符串或列表,用“”分隔并弹出最后一项)。但是,我意识到名称和 ID 之间并不总是有空格,所以这不起作用。
我的第二个想法是使用 OuterHTML 并获取 <br> 之前的所有内容,然后对 <br> 之后的 ID 执行相同操作。
然而,这是使用 outerHTML 返回的文本的样子:
"<span class=\"locDescription\"><b>Name1</b><br>ID1</span>"
我找不到在<br> 之前简单地抓取的方法...这似乎很容易做到...也许我错过了它。
代替它,我尝试使用索引来抓取文本:
var product_name = []
var elements = document.getElementsByClassName('locDescription');
for(var i=0; i<elements.length; i++) product_name.push(elements[i].outerHTML)
test1 = product_name[0].indexOf('><b>')
console.log(test1)
返回为 -1,因此它没有解释该文本中的乱码。知道我该如何做到这一点吗?我想我现在要掉进兔子洞了。
【问题讨论】:
-
const bs = document.querySelectorAll('.locDescription>b'); for(let b of bs){ console.log(b.textContent); } -
好像你忘记了
.indexOf():'&gt;&lt;b&gt;'中“br”的“R”
标签: javascript html getelementsbyclassname outerhtml