2 回答
TA贡献1795条经验 获得超7个赞
wall_reply_text
最可能的解释是当这段代码运行时没有类名的元素,所以document.getElementsByClassName('wall_reply_text')
返回一个空数组。当您尝试访问该空数组中的索引 0 时,您会得到undefined
,因此在尝试访问时会出现错误undefined.textContent
。
TA贡献1871条经验 获得超13个赞
如果没有元素,则需要中断
var n = 0, comment=""
while (true) {
const div = document.getElementsByClassName('wall_reply_text')[n]
if (div) comment = div.textContent;
else break
if (comment.indexOf("публикации") == 0) {
console.log(n,comment);
}
n++;
}
<div class="wall_reply_text">1</div>
<div class="wall_reply_text">публикации</div>
<div class="wall_reply_text">3</div>
<div class="wall_reply_text">4</div>
这是一种更优雅的方式
[...document.querySelectorAll('.wall_reply_text')]
.map(div => div.textContent)
.forEach((comment,i) => {
if (comment.indexOf("публикации") == 0) {
console.log(i,comment);
}
})
<div class="wall_reply_text">1</div>
<div class="wall_reply_text">публикации</div>
<div class="wall_reply_text">3</div>
<div class="wall_reply_text">публикации</div>
如果您只需要一个索引,则可以选择
const comments = [...document.querySelectorAll('.wall_reply_text')]
.map(div => div.textContent)
console.log(comments.indexOf("публикации"))
<div class="wall_reply_text">1</div>
<div class="wall_reply_text">публикации</div>
<div class="wall_reply_text">3</div>
<div class="wall_reply_text">4</div>
添加回答
举报