2017-03-22 4 views
-5

Ich möchte Körper Hintergrund ohne jquery setzen.Stellen Sie Stil mit reinem Javascript

jquery : $('body').css('background','red');

Warum wird dies nicht in reiner JS arbeiten?

document.getElementsByTagName('body').style['background'] = 'red';

+0

Da die '.style' Eigenschaft auf einzelnen DOM gilt Elemente und '.getElementsByTagName()' gibt eine * Liste * zurück. – nnnnnn

+0

Ich glaube, es sollte ein Fehler geworfen werden, überprüfen Sie es – wong2

+0

'getElements ...' notieren Sie die 's' am Ende von' Elements'. Verwenden Sie 'document.getElementsByTagName ('body') [0] .style ['background']' – slebetman

Antwort

1

var obj = document.getElementsByTagName('div')[0].style.backgroundColor = 'RED';
<div>sample</div>

0

getElementsByTagName kein einziges Element zurückgeben eine Sammlung instad.

Versuchen Sie, diese

document.getElementsByTagName('body')[0].style.backgroundColor = 'red'; 
1

Es gibt viele Möglichkeiten, wie Sie die Hintergrundfarbe einstellen. Aber getElementsByTagName nicht ein einzelnes Objekt, it'a Sammlung von

Objekt zurück
document.body.style.backgroundColor = "green"; //javascript 

document.getElementsByTagName("body")[0].style.backgroundColor = "green";//anothe one 

See the demo

+0

Ja, das ist viel einfacher. Aber es erklärt nicht, warum der OP-Code nicht funktioniert. (Und ... grün?) – nnnnnn

+0

getElementsByTagName gibt ein Objekt zurück, das mehr als einen Wert enthält. Sie können auf den Index zugreifen. –

Verwandte Themen