这里我有一个div box-title
,我有span
相关产品,我想将其文本更改为'Choose Extra To make It More Special'
为什么会出现此错误,请任何人都可以告诉我。
function onloadCall()
{
var divs = document.getElementsByClassName('box-title');
for(var i = 0; i < divs.length; i++)
{
var div = divs[i];
if(!div) break
var span = div.getElementsByTagName('span')[0];
if(span[0].innerHTML == 'Related Products')
span[0].innerHTML='Choose Extra To make It More Special';
}
}
window.addEventListener('load', onloadCall, false);
实际上,我的HTML标记是这样的:
<div class="box-title"><strong><span>Related Products<span></strong></div>
答案 0 :(得分:1)
变化:
if(span[0].innerHTML == 'Related Products')
span[0].innerHTML='Choose Extra To make It More Special';
有:
if(span.innerHTML == 'Related Products')
span.innerHTML='Choose Extra To make It More Special';
它应该有用。
此外,您可以更改以下内容:
var span = div.getElementsByTagName('span')[0];
有关:
var span = div.getElementsByTagName('span');
保持其他代码不变。如果这两个都不起作用,那么请确保html文件中有任何span
标记。
答案 1 :(得分:0)
var span = div.getElementsByTagName('span')[0];
if(span[0].innerHTML == 'Related Products')
span[0].innerHTML='Choose Extra To make It More Special';
我看到你抓住数组的第一个索引,然后在它不是一个数组的时候尝试抓住第一个索引。
<强>尝试:强>
var span = div.getElementsByTagName('span')[0];
if(span.innerHTML == 'Related Products')
span.innerHTML='Choose Extra To make It More Special';
答案 2 :(得分:0)
if(!div) {
break;
}
var span = div.getElementsByTagName('span')[0];
if(span && span.innerHTML == 'Related Products') {
span.innerHTML = 'Choose Extra To make It More Special';
}