无法读取属性';指数';HTML和Javascript中未定义的
我尝试在页面上用按钮突出显示搜索表达式。 有谁能帮我解决这个问题吗 未捕获 TypeError:无法读取HtmlButtoneElement.onclick(?q=Python:24)上突出显示处未定义的属性“indexOf” JS代码:无法读取属性';指数';HTML和Javascript中未定义的,javascript,html,Javascript,Html,我尝试在页面上用按钮突出显示搜索表达式。 有谁能帮我解决这个问题吗 未捕获 TypeError:无法读取HtmlButtoneElement.onclick(?q=Python:24)上突出显示处未定义的属性“indexOf” JS代码: function highlight(text) { var titles = document.getElementsByClassName('title'); for (var x in titles) {
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;
}
}
}
第24行:
<button onclick="highlight('{{ search_expression }}')">Highlight search expression</button>
突出显示搜索表达式
innerHTML
可能是未定义的
。在调用innerHTML.indexOf
var innerHTML = titles[x].innerHTML
if (innerHTML) {
var index = innerHTML.indexOf(text)
...
}
innerHTML
可能是未定义的
。在调用innerHTML.indexOf
var innerHTML = titles[x].innerHTML
if (innerHTML) {
var index = innerHTML.indexOf(text)
...
}
不要将
用于。。在
中迭代元素列表,但在循环中使用传统的
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.
}
}
功能突出显示(文本)
{
var titles=document.getElementsByClassName('title');
对于(变量i=0;i
有关正在发生的情况的解释,请参见不要将用于。。在
中迭代元素列表,但在
循环中使用传统的
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.
}
}
功能突出显示(文本)
{
var titles=document.getElementsByClassName('title');
对于(变量i=0;i
关于正在发生的事情的解释,请参见可能重复的@NineBerry well这是正确的答案,但问题与我想的不一样:)可能重复的@NineBerry well这是正确的答案,但问题与我想的不一样:)我想补充一点,你可以替换为。。在
中,使用for。。of,用于循环枚举。与..的不同。。在
中,使用for(让x成为数组的一部分)
在每个循环中x
将在数组中分配一个值-但是我建议通过索引进行循环,它更明确,并且您可以确定发生了什么。for。。Internet Explorer不支持of
,因此,如果您无法控制所使用的浏览器,则不支持of。您可以在集合中使用foreach()
。非常感谢,在下面另一个答案的帮助下工作。我只想补充一点,您可以为..替换。。在
中,使用for。。of,用于循环枚举。与..的不同。。在
中,使用for(让x成为数组的一部分)
在每个循环中x
将在数组中分配一个值-但是我建议通过索引进行循环,它更明确,并且您可以确定发生了什么。for。。Internet Explorer不支持of
,因此,如果您无法控制所使用的浏览器,则不支持of。您可以在集合中使用foreach()
。非常感谢,请使用下面的另一个答案。