あなたのJavascriptからいくつか問題があります。
まずオフ
var ul = d.getElementsByTagName('ul');
したがって、これは、あなたが、アレイ上で直接var li = ul.getElementsByTagName('li')
を呼び出すことはできませんul
要素の配列を返します。
配列内でそれぞれul
を繰り返す必要があります。li
のような配列項目から取得してください。
var ul = d.getElementsByTagName('ul');
for (var u = 0; u < ul.length; u++) {
var li = ul[u].getElementsByTagName('li')
}
は今だけul
変数としてli
はまた、あなたが、アレイ内の各li
項目を反復処理する必要がありますので、配列です。
var ul = d.getElementsByTagName('ul');
for (var u = 0; u < ul.length; u++) {
var li = ul[u].getElementsByTagName('li')
for (var i = 0; i < li.length; i++) {
}
}
次の問題は、class
要素を作成しないことです。 class
はli
要素の属性です。これは、各要素のclassName
プロパティを介してアクセスできます。
この作業を行うには、すべてをまとめて入れることができます。
var ul = d.getElementsByTagName('ul');
for (var u = 0; u < ul.length; u++) {
var li = ul[u].getElementsByTagName('li')
for (var i = 0; i < li.length; i++) {
li[i].className = 'Bebida';
}
}
ここにはJSFiddleがあります。
ポイントをもう1つ追加する必要があります。 ul
要素をキャプチャする最初のループは無関係です。これを直接スキップして、すべてのli
要素を取得することができます。これにより、必要なループの量が減ります。
は、すべてのul
の要素をキャプチャして、あなたは、単にドキュメントからすべてのli
の要素を取得することができますul
そのため、すべてのli
をキャプチャしていることを考えます。これは、li
の子がul
で、他の要素(例えばol
)でない場合にのみ当てはまります。
これを〜に減らすことができます。
var liArray = d.getElementsByTagName('li');
for(var i=0; i<liArray.length;i++)
liArray[i].className = 'Bebida';
可能な重複:[特定の要素にクラスを追加するにはどうすればよいですか?](http://stackoverflow.com/questions/507138/how-do-i-add-a-class-to-a -given-element) –
[MDNの[element.className]を参照してください(https://developer.mozilla.org/en-US/docs/Web/API/Element/className) –
「」、「class」このコンテキストでは、属性です。属性は要素の「設定」です(id =、class =、style =、height = '' disableded'' contenteditableなど) –
zer00ne