0

要素がクリックされたときに呼び出される関数があります。

function showHide(elem){    
        var clickedText = elem.getElementsByTagName("p");
        clickedText.style.color = "green";

    }

このコードを実行すると、Uncaught TypeError: Cannot set property 'color' of undefined. ただし、それを行うconsole.log(clickedText)と、適切なログが記録されます

鬼ごっこ。私の人生では、これが機能しない理由を理解できません。完全に明らかな何かを見逃したのでしょうか?

4

2 に答える 2

5

このgetElementsByTagNameメソッドは、要素のコレクションを返します (NodeList配列のような で)。

インデックスを指定する必要があります。例えば:

clickedText[0].style.color = "green";

現在、その中に含まれる要素ではなく、それ自体のstyleプロパティにアクセスしようとしています。NodeList

于 2012-12-13T11:31:44.543 に答える
5

getElementsByTagName要素のリストを返すため、結果をループする必要があります。

var clickedTexts = elem.getElementsByTagName("p");
for (var i = 0; i < clickedTexts.length; i++) { 
    clickedTexts[i].style.color = "green";
}
于 2012-12-13T11:32:00.840 に答える