gpt4 book ai didi

javascript - 无法读取 HTML 和 Javascript 中未定义的属性 'index Of'

转载 作者:行者123 更新时间:2023-12-01 01:59:24 24 4
gpt4 key购买 nike

我尝试使用按钮在页面上突出显示搜索表达式。谁能帮我解决这个问题吗?

Uncaught TypeError: Cannot read property 'indexOf' of undefined at highlight (?q=Python:11) at HTMLButtonElement.onclick (?q=Python:24)

JS代码:

function highlight(text) {
var titles = document.getElementsByClassName('title');
for (var x in titles) {
var innerHTML = titles[x].innerHTML;
var index = innerHTML.indexOf(text);
if (index >= 0) {
innerHTML = innerHTML.substring(0, index) + "<span class='highlight'>" + innerHTML.substring(index, index + text.length) + "</span>" + innerHTML.substring(index + text.length);
x.innerHTML = innerHTML;
}
}
}

第 11 行:

var index = innerHTML.indexOf(text);

第 24 行:

<button onclick="highlight('{{ search_expression }}')">Highlight search expression</button>

最佳答案

不要使用 for .. in 来迭代元素列表,而是使用传统的 for 循环。

function highlight(text) 
{
var titles = document.getElementsByClassName('title');
for (var i=0; i < titles.length; i++)
{
var title = titles[i];
var innerHTML = title.innerHTML;

// Work with title some more.
}
}

有关发生的情况的解释,请参阅 Why is using "for...in" with array iteration a bad idea?

关于javascript - 无法读取 HTML 和 Javascript 中未定义的属性 'index Of',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50737115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com