W pierwszym przykładzie nie masz dostępu do atrybutu style
, ale do właściwości style
. Wartość właściwości może być dowolna, w przypadku, gdy właściwość style
jest obiektem. W drugim przykładzie masz dostęp do atrybutu stylu tagu. Wartość atrybutu może być tylko łańcuchem.
W przypadku niektórych atrybutów istnieje między nimi mapowanie. Jeśli więc ustawisz atrybut style
w węźle HTML, twoja właściwość style
zostanie zaktualizowana, a Twój styl zostanie zastosowany. Jednak nie zawsze tak jest: znanym błędem w niektórych wersjach IE (przynajmniej do IE7) jest to, że ten rodzaj mapowania jest uszkodzony, więc ustaw atrybut nie jest odzwierciedlany w tej właściwości.
Tak więc, jeśli chcesz ustawić atrybut w węźle HTML, musisz użyć drugiego. Ale jeśli chcesz uzyskać dostęp do własności obiektu, który reprezentuje reprezentuje węzeł HTML, musisz użyć pierwszego.
W przypadku modelu style
zdecydowanie zaleca się pierwszą.
Żeby było jasne z przykładu (w nowoczesnych przeglądarkach):
document.body.style.border = "1px solid red";
console.log(document.body.style); // [object CSSStyleDeclaration]
console.log(document.body.getAttribute("style")); // "border: 1px solid red;"
myślę, że może to zrobić również 'document.getElementById ('') myid [ 'styl']'. afaik, ma podobny powód użycia 'getAttribute()' jak wyjaśniono @ gwynhowell. – Joseph
to tylko kolejny sposób na uzyskanie dostępu do właściwości obiektów .. w porządku? –
tak, tylko w inny sposób. – Joseph