1

ここに、クラスの div と関連製品の 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>
4

3 に答える 3

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');

他のコードはそのままにしておきます。どちらも機能しない場合はspan、html ファイルにタグがあることを確認してください。

于 2012-12-15T02:18:01.713 に答える
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';
于 2012-12-15T02:19:10.263 に答える
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';
}

デモ

于 2012-12-15T02:23:56.850 に答える