2012-10-16 2 views
5

Mögliche Duplizieren:
IE/Chrome: are DOM tree elements global variables here?Verweis auf ein Element von id allein, keine document.getElementById

Zur Zeit arbeite ich an einer mobilen Website mit jQuery Mobile und ich bemerkte, etwas interessant (für mich sowieso, da ich noch neu bei js bin). Innerhalb einer Funktion können Sie auf ein Element nur mit der ID verweisen.

Dies ist der Testcode I (auf Chrom 22.0.x, firefox 16.0.1 und Safari 5.1.7) verwendet:

<!DOCTYPE html> 
<html> 
    <head></head> 
    <body onload="tt()"> 
    <div id="abc">Test</div> 
    <a id="cba">Test2</a> 
    </body> 
    <Script> 
    function tt() { 
     console.log(abc); 
     abc.style.backgroundColor = "red"; 
     return cba; 
    } 
    </Script> 
</html> 

Kein getElementById, kein jQuery-Selektor, nur die ID. War das schon immer so? Wenn ja, ist das eine gute Praxis und warum funktioniert das? Ich denke Funktion muss einen Kontext haben, aber wo ist es, ist es die Seite?

Jeder Einblick wäre dankbar, Danke.

+0

Um Ihre Frage zu beantworten, klingt das wie eine _horrible_ Gewohnheit, um anzufangen. – jahroy

+0

Danke Jungs. Große Antwort, ich bleibe bei der guten alten getElementById :) – user1736525

Antwort

5

Sie tun wirklich:

window.abc; 

Dies ist etwas, das IE gestartet, das war wirklich ein schlechtes Design Wahl.

Sehen Sie diese great answer to a very very similar question

Es ist wirklich ein Duplikat aber der Titel dies nicht reflektieren.

Probieren Sie diese Zeile in Ihrer Konsole aus, um zu sehen, was ich meine.

(function(){ console.log(this); })(); // logs the Window object 
Verwandte Themen